public void EntityChildInsertTest() { using (var repo = RepositoryContext.GetRepository()) { var addChild = Person.CreatePerson("Person-1016", "张三", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA237E091")); var department = new Department() {Name = "NewTest1122"}; addChild.Department = department; repo.Add(addChild); repo.SaveChanges(); } }
public void Add_NormalTest() { var repo = RepositoryContext.GetRepository(); var department = new Department(); repo.Add(department); Assert.AreEqual(department.SysState, EntityStateEnum.Inserting); repo.SaveChanges(); Assert.AreEqual(department.SysState, EntityStateEnum.Unchanged); var addedDepartment = RepositoryContext.GetRepository().GetByID<Department>(department.ID); Assert.IsNotNull(addedDepartment); Assert.AreEqual(addedDepartment.SysState, EntityStateEnum.Unchanged); }
/// <summary> /// 通过条件查询 返回上一张 /// </summary> /// <param name="totalcount">所有记录数</param> /// <param name="dto">当前实体</param> /// <param name="whereExpression">条件表达式</param> /// <param name="orderByExpression">排序字段表达式</param> /// <param name="ascending">升序排列</param> /// <returns>DepartmentDTO</returns> public static Department FindPrevious(out int totalCount, Department dto, Expression<Func<Department, bool>> whereExpression, Expression<Func<Department, object>> orderByExpression, bool ascending) { var repo = RepositoryContext.GetRepository(); var list = repo.GetAll(whereExpression, orderByExpression, ascending); totalCount = list.Count; int i = 0; foreach (Department department in list) { if (department.ID == dto.ID) { break; } i = i + 1; } if (i == 0) return null; return list[i]; }
public void EntityIDAndDeptTest() { using (var repo = RepositoryContext.GetRepository()) { var addChild = Person.CreatePerson("P1122", "Test1122", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA567E091")); var department = new Department() {Name = "NewTest1122"}; addChild.idDepartment = department.ID; repo.Add(addChild); repo.Add(department); repo.SaveChanges(); } }
public void EntitySetLazyTest() { Guid deptID; // 验证用实体做持久化可以级联保存 using (var repo = RepositoryContext.GetRepository()) { var addChildA = Person.CreatePerson("P1122A", "Test1122A", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA567E091")); var addChildB = Person.CreatePerson("P1122B", "Test1122B", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA567E092")); var department = new Department() {Name = "NewTest1122"}; department.Persons.Add(addChildA); department.Persons.Add(addChildB); deptID = department.ID; repo.Add(department); repo.SaveChanges(); } using (var repo = RepositoryContext.GetRepository()) { var testDepartment = repo.GetByID<Department>(deptID); foreach (var person in testDepartment.Persons) { } } }
public void EntityOTMTest() { var DepartmentTest = new Department(); DepartmentTest.AddChild(Person.CreatePerson("Person-1005", "张三", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA237E091"))); DepartmentTest.AddChild(Person.CreatePerson("Person-1007", "王五", true, Guid.Parse( "995A7640-3303-47DF-AEC2-20E459CDFEC3"))); DepartmentTest.AddChild(Person.CreatePerson("Person-1006", "李四", false, Guid.Parse( "91FBED4E-A754-4022-AE3D-7FF9C21861CC"))); using (var repo = RepositoryContext.GetRepository()) { repo.Add(DepartmentTest); Assert.AreEqual(DepartmentTest.SysState, EntityStateEnum.Inserting); repo.SaveChanges(); Assert.AreEqual(DepartmentTest.SysState, EntityStateEnum.Unchanged); var addedcategory = RepositoryContext.GetRepository().GetByID<Category>(DepartmentTest.ID); Assert.IsNotNull(addedcategory); Assert.AreEqual(addedcategory.SysState, EntityStateEnum.Unchanged); } }
public void EntityIDSetTest() { Guid deptID; using (var repo = RepositoryContext.GetRepository()) { var addChildA = Person.CreatePerson("P1122A", "Test1122A", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA567E091")); var addChildB = Person.CreatePerson("P1122B", "Test1122B", false, Guid.Parse( "B2DD9318-7A40-4D44-A5C6-26DCA567E092")); var department = new Department() {Name = "NewTest1122"}; addChildA.idDepartment = department.ID; addChildB.idDepartment = department.ID; repo.Add(addChildA); repo.Add(addChildB); repo.Add(department); repo.SaveChanges(); deptID = department.ID; var testDepartment = repo.GetByID<Department>(department.ID); Assert.AreEqual(testDepartment.Persons.Count, 0); } using (var repo = RepositoryContext.GetRepository()) { var testDepartment = repo.GetByID<Department>(deptID); /// 能否使用导航属性作为兰姆达表达式中的参数 var persons = repo.GetAll<Person>(p => p.idDepartment == testDepartment.Persons.FirstOrDefault().Department.ID); foreach (var person in persons) { Assert.IsNotNull(person.Department, "一对多的多端,关系断裂"); } Assert.AreEqual(testDepartment.Persons.Count, 2, "一对多的一端,关系断裂"); } // 导航属性作为排序依据 using (var repo = RepositoryContext.GetRepository()) { var testDepartment = repo.GetByID<Department>(deptID); var result = (from item in repo.Query<Person>() where item.idDepartment == testDepartment.Persons.FirstOrDefault().Department.ID select item).ToList<Person>(); } }