public virtual void Can_query_from_one_connection_and_save_changes_to_another() { using var context1 = CreateBackingContext("TwoDatabasesOneB"); using var context2 = CreateBackingContext("TwoDatabasesTwoB"); Assert.NotSame(context1.Database.GetDbConnection(), context2.Database.GetDbConnection()); context1.Database.EnsureCreatedResiliently(); context2.Database.EnsureCreatedResiliently(); using (var context = new TwoDatabasesContext(CreateTestOptions(new DbContextOptionsBuilder()).Options)) { context.Database.SetDbConnection(context1.Database.GetDbConnection()); var data = context.Foos.ToList(); data[0].Bar = "Modified One"; data[1].Bar = "Modified Two"; context.Database.SetDbConnection(context2.Database.GetDbConnection()); context.SaveChanges(); } Assert.Equal(new[] { "One", "Two" }, context1.Foos.Select(e => e.Bar).ToList()); Assert.Equal(new[] { "Modified One", "Modified Two" }, context2.Foos.Select(e => e.Bar).ToList()); }
public void Can_set_connection_string_in_interceptor() { using var context1 = CreateBackingContext("TwoDatabasesIntercept"); context1.Database.EnsureCreatedResiliently(); using (var context = new TwoDatabasesContext( CreateTestOptions(new DbContextOptionsBuilder(), withConnectionString: true) .AddInterceptors(new ConnectionStringConnectionInterceptor( context1.Database.GetConnectionString(), DummyConnectionString)) .Options)) { var data = context.Foos.ToList(); data[0].Bar = "Modified One"; data[1].Bar = "Modified Two"; context.SaveChanges(); } Assert.Equal(new[] { "Modified One", "Modified Two" }, context1.Foos.Select(e => e.Bar).ToList()); }