Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }