Exemplo n.º 1
0
        public void TestAddChild()
        {
            IStore store = new ThreadStaticStore();
            IDbContextFactory contextFactory = new DbContextFactory();

            using (UnitOfWork unitwork = new UnitOfWork(store, contextFactory))
            {
                IRepository<Demo, Guid> demoRepository = new Repository<Demo, Guid>(store);
                IRepository<DemoChild, Guid> demoChildRepository = new Repository<DemoChild, Guid>(store);
                IRepository<DemoBrother, Guid> demoBrotherRepository = new Repository<DemoBrother, Guid>(store);
                Demo demo = new Demo()
                {
                    Name = "C"
                };

                DemoChild child = new DemoChild();
                demo.Children.Add(child);

                DemoBrother brother = new DemoBrother();
                demo.Brothers.Add(brother);

                demoRepository.SaveOrUpdate(demo);
                demoChildRepository.SaveOrUpdate(child);
                demoBrotherRepository.SaveOrUpdate(brother);

                unitwork.SaveChanges();
            }
        }
Exemplo n.º 2
0
        public void TestData()
        {
            IStore store = new ThreadStaticStore();
            IDbContextFactory contextFactory = new DbContextFactory();

            using (UnitOfWork unitwork = new UnitOfWork(store, contextFactory))
            {
                IRepository<Demo,Guid> demoRepository = new Repository<Demo,Guid>(store);
                Demo demo = new Demo() { Name = "B"};
                demoRepository.SaveOrUpdate(demo);
                unitwork.SaveChanges();
            }
        }
Exemplo n.º 3
0
        public void TestGetChild()
        {
            IStore store = new ThreadStaticStore();
            IDbContextFactory contextFactory = new DbContextFactory();

            using (UnitOfWork unitwork = new UnitOfWork(store, contextFactory))
            {
                IRepository<Demo, Guid> demoRepository = new Repository<Demo, Guid>(store);
                demoRepository.Include(i => i.Children); //這兩個做eager Load
                demoRepository.Include(i => i.Brothers);
                var demos = demoRepository.Query(q => q.Name == "C");

                Assert.AreEqual(1, demos.Count());
                Assert.AreEqual(1, demos.First().Children.Count());
                Assert.AreEqual(1, demos.First().Brothers.Count());
            }
        }
Exemplo n.º 4
0
        public void TestGetData()
        {
            IStore store = new ThreadStaticStore();
            IDbContextFactory contextFactory = new DbContextFactory();

            using (UnitOfWork unitwork = new UnitOfWork(store, contextFactory))
            {
                IRepository<Demo,Guid> demoRepository = new Repository<Demo,Guid>(store);
                var list = demoRepository.GetAll();
                Assert.AreEqual(1, list.Count);
            }
        }
Exemplo n.º 5
0
        public void TestStore()
        {
            ThreadStaticStore store = new ThreadStaticStore();
            Demo demo = new Demo();

            store.Put("1", demo);

            Assert.AreEqual(demo, store.Get<Demo>("1"));
        }
Exemplo n.º 6
0
        public void TestSpecifications()
        {
            IStore store = new ThreadStaticStore();
            IDbContextFactory contextFactory = new DbContextFactory();
            Specification<Demo> specify =  new Specification<Demo>(o => o.Name == "A");
            Specification<Demo> specify1 = new Specification<Demo>(o => o.Name == "B");
            Specification<Demo> specify2 = specify | specify1;

            using (UnitOfWork unitwork = new UnitOfWork(store, contextFactory))
            {
                IRepository<Demo,Guid> demoRepository = new Repository<Demo,Guid>(store);
                IList<Demo> demos = demoRepository.Query(specify2);
                Assert.AreEqual(2, demos.Count());
            }
        }
Exemplo n.º 7
0
        public void TestSimpleQuery()
        {
            IStore store = new ThreadStaticStore();
            IDbContextFactory contextFactory = new DbContextFactory();

            using (UnitOfWork unitwork = new UnitOfWork(store, contextFactory))
            {
                IRepository<Demo, Guid> demoRepository = new Repository<Demo, Guid>(store);
                IList<Demo> demos = demoRepository.Query(q => q.Name== "A" || q.Name == "B");
                Assert.AreEqual(2, demos.Count());
            }
        }