示例#1
0
        static void Main(string[] args)
        {
            ContextA ctxA = new ContextA();

            ctxA.Set <ModelA>().Add(new ModelA());
            ctxA.SaveChanges();

            ContextB ctxB = new ContextB();

            ctxB.Set <ModelB>().Add(new ModelB());
            ctxB.SaveChanges();

            ContextJoin ctxJoin = new ContextJoin(ctxA, ctxB);

            ctxJoin.Set <ModelB>().Add(new ModelB());
            ctxJoin.Set <ModelA>().Add(new ModelA());
            ctxJoin.SaveChanges();

            var crossQuery = ctxJoin.Set <ModelA>().Join(
                ctxJoin.Set <ModelB>(), t => t.Id, t => t.Id, (a, b) => new
            {
                a.Name,
                b.Date
            }).ToList();

            crossQuery.ForEach(t => Console.WriteLine($"Name: {t.Name}, Date: {t.Date}"));
        }
示例#2
0
        static void SubMainWithDI()
        {
            //with dependency injection, it will automatically injected the proper object into arguments.
            ContextA _contextA = Container.Resolve <ContextA>();
            ContextB _contextB = Container.Resolve <ContextB>();
            ContextC _contextC = Container.Resolve <ContextC>();

            _contextA.DoSomething();
            _contextB.DoSomething();
            _contextC.DoSomething();
        }
示例#3
0
        static void SubMainWithoutDI()
        {
            //without dependency injection, manually inputed the object
            ContextA contextA = new ContextA(new ClassA());
            ContextB contextB = new ContextB(new ClassA(), new ClassB());
            ContextC contextC = new ContextC(new ClassA(), new ClassB(), new ClassC());

            contextA.DoSomething();
            contextB.DoSomething();
            contextC.DoSomething();
        }
        public void Can_initialize_with_create_if_not_exists()
        {
            ResetDatabase();

            Database.SetInitializer(new CreateDatabaseIfNotExists <ContextA>());
            Database.SetInitializer(new CreateDatabaseIfNotExists <ContextB>());

            using (var connection = TestDatabase.CreateConnection(TestDatabase.ConnectionString))
            {
                using (var context = new ContextA(connection, contextOwnsConnection: false))
                {
                    context.Database.Initialize(true);
                }

                using (var context = new ContextB(connection, contextOwnsConnection: false))
                {
                    context.Database.Initialize(true);
                }
            }

            Assert.True(TableExists("TenantAs"));
            Assert.True(TableExists("TenantBs"));
        }
示例#5
0
 public EDTController()
 {
     _contextA = new ContextA();
     _contextB = new ContextB();
 }
        public void Can_initialize_with_create_if_not_exists()
        {
            ResetDatabase();

            Database.SetInitializer(new CreateDatabaseIfNotExists<ContextA>());
            Database.SetInitializer(new CreateDatabaseIfNotExists<ContextB>());

            using (var connection = TestDatabase.CreateConnection(TestDatabase.ConnectionString))
            {
                using (var context = new ContextA(connection, contextOwnsConnection: false))
                {
                    context.Database.Initialize(true);
                }

                using (var context = new ContextB(connection, contextOwnsConnection: false))
                {
                    context.Database.Initialize(true);
                }
            }

            Assert.True(TableExists("TenantAs"));
            Assert.True(TableExists("TenantBs"));
        }