public void ApplyForeignKeyChange(EntityChange entity) { foreach (var identityChange in _primaryKeyChanges) { var foreignKey = entity.GetForeignKeyOf(identityChange.EntityName); if (foreignKey == null) { continue; } foreignKey.ApplyForeignKeyChange(identityChange); } }
public bool HasForeignKeyDeleted(EntityChange entity) { _hasForeignKeyDeleted = _primaryKeyDeleted.Any( _ => { var entityNameDeleted = _.GetEntityNameFromTombstone(); var entityForeignKey = entity.GetForeignKeyOf(entityNameDeleted); var hasForeignKey = entityForeignKey != null; if (!hasForeignKey) { return(false); } var deletedPrimaryId = _.GetPrimaryKeyValue(); return(entityForeignKey.IsValueEquals(deletedPrimaryId)); }); return(_hasForeignKeyDeleted); }