public override ComplexNavigationsContext CreateContext(InMemoryTestStore _) { var context = new ComplexNavigationsContext(_options); context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; return(context); }
protected override void Seed(ComplexNavigationsContext context) { base.Seed(context); ChangesDate = new DateTime(2010, 1, 1); var tableNames = new List <string> { "LevelOne", "LevelTwo", "LevelThree", "LevelFour" }; // clean up intermittent history since in the Seed method we do fixup in multiple stages foreach (var tableName in tableNames) { context.Database.ExecuteSqlRaw($"ALTER TABLE [{tableName}] SET (SYSTEM_VERSIONING = OFF)"); context.Database.ExecuteSqlRaw($"DELETE FROM [{tableName + "History"}]"); context.Database.ExecuteSqlRaw( $"ALTER TABLE [{tableName}] SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[{tableName + "History"}]))"); } foreach (var entityOne in context.ChangeTracker.Entries().Where(e => e.Entity is Level1).Select(e => e.Entity)) { ((Level1)entityOne).Name = ((Level1)entityOne).Name + "Modified"; } foreach (var entityOne in context.ChangeTracker.Entries().Where(e => e.Entity is Level2).Select(e => e.Entity)) { ((Level2)entityOne).Name = ((Level2)entityOne).Name + "Modified"; } foreach (var entityOne in context.ChangeTracker.Entries().Where(e => e.Entity is Level3).Select(e => e.Entity)) { ((Level3)entityOne).Name = ((Level3)entityOne).Name + "Modified"; } foreach (var entityOne in context.ChangeTracker.Entries().Where(e => e.Entity is Level4).Select(e => e.Entity)) { ((Level4)entityOne).Name = ((Level4)entityOne).Name + "Modified"; } context.SaveChanges(); foreach (var tableName in tableNames) { context.Database.ExecuteSqlRaw($"ALTER TABLE [{tableName}] SET (SYSTEM_VERSIONING = OFF)"); context.Database.ExecuteSqlRaw($"ALTER TABLE [{tableName}] DROP PERIOD FOR SYSTEM_TIME"); context.Database.ExecuteSqlRaw($"UPDATE [{tableName + "History"}] SET PeriodStart = '2000-01-01T01:00:00.0000000Z'"); context.Database.ExecuteSqlRaw($"UPDATE [{tableName + "History"}] SET PeriodEnd = '2020-07-01T07:00:00.0000000Z'"); context.Database.ExecuteSqlRaw($"ALTER TABLE [{tableName}] ADD PERIOD FOR SYSTEM_TIME ([PeriodStart], [PeriodEnd])"); context.Database.ExecuteSqlRaw( $"ALTER TABLE [{tableName}] SET (SYSTEM_VERSIONING = ON (HISTORY_TABLE = [dbo].[{tableName + "History"}]))"); } }
public override InMemoryTestStore CreateTestStore() { return(InMemoryTestStore.GetOrCreateShared(DatabaseName, () => { using (var context = new ComplexNavigationsContext(_options)) { ComplexNavigationsModelInitializer.Seed(context); } })); }
public override ComplexNavigationsContext CreateContext(OracleTestStore testStore) { var context = new ComplexNavigationsContext(_options); context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; context.Database.UseTransaction(testStore.Transaction); return(context); }
public override SqliteTestStore CreateTestStore() => SqliteTestStore.GetOrCreateShared( DatabaseName, () => { using (var context = new ComplexNavigationsContext(_options)) { context.Database.EnsureClean(); ComplexNavigationsModelInitializer.Seed(context, tableSplitting: true); } });
public override OracleTestStore CreateTestStore() { return(OracleTestStore.GetOrCreateShared(DatabaseName, () => { using (var context = new ComplexNavigationsContext(_options)) { context.Database.EnsureCreated(); ComplexNavigationsModelInitializer.Seed(context); } })); }
public override ComplexNavigationsContext CreateContext(SqlServerTestStore testStore) { var optionsBuilder = new EntityOptionsBuilder(); optionsBuilder.UseSqlServer(testStore.Connection); var context = new ComplexNavigationsContext(_serviceProvider, optionsBuilder.Options); context.Database.AsRelational().Connection.UseTransaction(testStore.Transaction); return(context); }
public override ComplexNavigationsContext CreateContext(SqliteTestStore testStore) { var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlite(testStore.Connection); var context = new ComplexNavigationsContext(_serviceProvider, optionsBuilder.Options); context.Database.UseTransaction(testStore.Transaction); return(context); }
public override SqlServerTestStore CreateTestStore() { return(SqlServerTestStore.GetOrCreateShared(DatabaseName, () => { using (var context = new ComplexNavigationsContext(_options)) { context.Database.EnsureCreated(); ComplexNavigationsModelInitializer.Seed(context); TestSqlLoggerFactory.Reset(); } })); }
public override ComplexNavigationsContext CreateContext(NpgsqlTestStore testStore) { var optionsBuilder = new DbContextOptionsBuilder() .UseNpgsql(testStore.Connection) .UseInternalServiceProvider(_serviceProvider); var context = new ComplexNavigationsContext(optionsBuilder.Options); context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; context.Database.UseTransaction(testStore.Transaction); return(context); }
public override SqliteTestStore CreateTestStore() => SqliteTestStore.GetOrCreateShared( DatabaseName, () => { var optionsBuilder = new DbContextOptionsBuilder() .UseSqlite(_connectionString) .UseInternalServiceProvider(_serviceProvider); using (var context = new ComplexNavigationsContext(optionsBuilder.Options)) { context.Database.EnsureClean(); ComplexNavigationsModelInitializer.Seed(context); } });
public override ComplexNavigationsContext CreateContext(SqliteTestStore testStore) { var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlite(testStore.Connection) .SuppressForeignKeyEnforcement(); var context = new ComplexNavigationsContext(_serviceProvider, optionsBuilder.Options); context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; context.Database.UseTransaction(testStore.Transaction); return(context); }
public override SqlServerTestStore CreateTestStore() { return(SqlServerTestStore.GetOrCreateShared(DatabaseName, () => { var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlServer(_connectionString); using (var context = new ComplexNavigationsContext(_serviceProvider, optionsBuilder.Options)) { // TODO: Delete DB if model changed context.Database.EnsureDeleted(); if (context.Database.EnsureCreated()) { ComplexNavigationsModelInitializer.Seed(context); } } })); }
public override SqliteTestStore CreateTestStore() => SqliteTestStore.GetOrCreateShared( DatabaseName, () => { var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlite(_connectionString); using (var context = new ComplexNavigationsContext(_serviceProvider, optionsBuilder.Options)) { if (context.Database.EnsureCreated()) { ComplexNavigationsModelInitializer.Seed(context); } TestSqlLoggerFactory.SqlStatements.Clear(); } });
public override NpgsqlTestStore CreateTestStore() => NpgsqlTestStore.GetOrCreateShared(DatabaseName, () => { var optionsBuilder = new DbContextOptionsBuilder() .UseNpgsql(_connectionString) .UseInternalServiceProvider(_serviceProvider); using (var context = new ComplexNavigationsContext(optionsBuilder.Options)) { // TODO: Delete DB if model changed context.Database.EnsureDeleted(); if (context.Database.EnsureCreated()) { ComplexNavigationsModelInitializer.Seed(context); } TestSqlLoggerFactory.SqlStatements.Clear(); } });
protected override void Seed(ComplexNavigationsContext context) => ComplexNavigationsData.Seed(context, tableSplitting: true);
protected override IQueryable <Level4> GetLevelFour(ComplexNavigationsContext context) => GetLevelThree(context).Select(t => t.OneToOne_Required_PK).Where(t => t != null);