Пример #1
0
 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();
     }
 }
Пример #2
0
        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);
        }
Пример #3
0
 /// <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];
 }
Пример #4
0
 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();
     }
 }
Пример #5
0
        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)
                {

                }
            }
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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>();
            }
        }