public virtual IEnumerable <ModificationCommand> GenerateModificationCommands(IModel?model) { Check.DebugAssert( KeyColumns.Length == KeyValues.GetLength(1), $"The number of key values doesn't match the number of keys (${KeyColumns.Length})"); var table = model?.GetRelationalModel().FindTable(Table, Schema); var properties = table != null ? MigrationsModelDiffer.GetMappedProperties(table, KeyColumns) : null; var modificationCommandFactory = new ModificationCommandFactory(); for (var i = 0; i < KeyValues.GetLength(0); i++) { var modificationCommand = modificationCommandFactory.CreateModificationCommand( new ModificationCommandParameters( Table, Schema, sensitiveLoggingEnabled: false)); for (var j = 0; j < KeyColumns.Length; j++) { var columnModificationParameters = new ColumnModificationParameters( KeyColumns[j], originalValue: null, value: KeyValues[i, j], property: properties?[j], columnType: KeyColumnTypes?[j], typeMapping: null, read: false, write: true, key: true, condition: true, sensitiveLoggingEnabled: false); modificationCommand.AddColumnModification(columnModificationParameters); } yield return((ModificationCommand)modificationCommand); } }
private static IModificationCommand CreateModificationCommand( string name, string schema, bool sensitiveLoggingEnabled) { var modificationCommandParameters = new ModificationCommandParameters( name, schema, sensitiveLoggingEnabled); var modificationCommand = new ModificationCommandFactory().CreateModificationCommand( modificationCommandParameters); return(modificationCommand); }