コード例 #1
0
        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);
            }
        }
コード例 #2
0
    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);
    }