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(); } }
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(); } }
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()); } }
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); } }
public void TestStore() { ThreadStaticStore store = new ThreadStaticStore(); Demo demo = new Demo(); store.Put("1", demo); Assert.AreEqual(demo, store.Get<Demo>("1")); }
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()); } }
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()); } }