public virtual IEnumerable <ModificationCommand> GenerateModificationCommands([CanBeNull] IModel model) { Check.DebugAssert( Columns.Length == Values.GetLength(1), $"The number of values doesn't match the number of keys (${Columns.Length})"); var table = model?.GetRelationalModel().FindTable(Table, Schema); var properties = table != null ? MigrationsModelDiffer.GetMappedProperties(table, Columns) : null; for (var i = 0; i < Values.GetLength(0); i++) { var modifications = new ColumnModification[Columns.Length]; for (var j = 0; j < Columns.Length; j++) { modifications[j] = new ColumnModification( Columns[j], originalValue: null, value: Values[i, j], property: properties?[j], columnType: ColumnTypes?[j], isRead: false, isWrite: true, isKey: true, isCondition: false, sensitiveLoggingEnabled: false); } yield return(new ModificationCommand(Table, Schema, modifications, sensitiveLoggingEnabled: false)); } }
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); } }
//TODO: Testear que se resuelva el IServiceProvider public ComponentStateManager( IServiceProvider serviceProvider, IComponentStore componentStore, IComponentsAssembliesProvider componentsAssembliesProvider, MigrationsModelDiffer modelDiffer, MigrationsSqlGenerator sqlGenerator, IEntityFrameworkDataProvider dataProvider) { _serviceProvider = serviceProvider; _componentStore = componentStore; _componentsAssembliesProvider = componentsAssembliesProvider; _modelDiffer = modelDiffer; _sqlGenerator = sqlGenerator; _dataProvider = dataProvider; }
public GoofyComponentsPopulate( IServiceCollection services, IComponentStateManager componentStateManager, IComponentStore componentStore, IComponentsInfoProvider componentsInfoProvider, IComponentsAssembliesProvider componentsAssembliesProvider, MigrationsModelDiffer modelDiffer, MigrationsSqlGenerator sqlGenerator, IEntityFrameworkDataProvider dataProvider ) { _services = services; _componentStateManager = componentStateManager; _componentStore = componentStore; _componentsInfoProvider = componentsInfoProvider; _componentAssembliesProvider = componentsAssembliesProvider; _modelDiffer = modelDiffer; _sqlGenerator = sqlGenerator; _dataProvider = dataProvider; }
private static IHistoryRepository CreateHistoryRepository() { var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseMySQL(MySQLTestStore.rootConnectionString + "database=test;"); var connection = new MySQLServerConnection(optionsBuilder.Options, new Logger <MySQLServerConnection>(new LoggerFactory())); var typeMapper = new MySQLTypeMapper(); var serviceCollection = new ServiceCollection(); serviceCollection.AddEntityFrameworkMySQL() .AddDbContext <MyTestContext>(); var serviceProvider = serviceCollection.BuildServiceProvider(); var context = serviceProvider.GetRequiredService <MyTestContext>(); var creator = context.GetService <IRelationalDatabaseCreator>(); var cmdBuilder = context.GetService <IRawSqlCommandBuilder>(); var options = new DbContextOptions <DbContext>( new Dictionary <Type, IDbContextOptionsExtension> { { typeof(MySQLOptionsExtension), new MySQLOptionsExtension() } }); var modelDiffer = new MigrationsModelDiffer( new MySQLTypeMapper(), new MySQLMigrationsAnnotationProvider( new MigrationsAnnotationProviderDependencies())); var logger = new DiagnosticsLogger <DbLoggerCategory.Database.Command>( new LoggerFactory(), new LoggingOptions(), new DiagnosticListener("Fake")); var commandBuilderFactory = new RelationalCommandBuilderFactory( logger, typeMapper); var sqlGeneratorHelper = new MySQLSqlGenerationHelper(new RelationalSqlGenerationHelperDependencies()); var migrationsSqlGeneratorDependencies = new MigrationsSqlGeneratorDependencies( commandBuilderFactory, sqlGeneratorHelper, typeMapper); var migrationsSqlGeneratior = new MySQLMigrationsSqlGenerator(migrationsSqlGeneratorDependencies); HistoryRepositoryDependencies dependencies = new HistoryRepositoryDependencies( creator, cmdBuilder, connection, options, modelDiffer, migrationsSqlGeneratior, sqlGeneratorHelper); return(new MySQLHistoryRepository(dependencies)); }