阅读背景:

SqlSugar多级查询_冬夜的博客_sqlsugar 子查询

来源:互联网 

 直接上代码

            //一级关联查询,直接通过字表ID查询字表实体信息
            var user = Db.Queryable<SysUser>().Where(it => it.UserCode == userCode).Mapper(it=>it.employee, it => it.EmployeeId).ToList();

            //多级关联查询一,USER-->EMPLOYEE-->DEPARTMENT   user.employee.department
            var user1 = Db.Queryable<SysUser>().Where(it => it.UserCode == userCode).Mapper((it, cache) =>
            {
               
                it.employee = cache.GetListByPrimaryKeys<Employee>(ea => ea.EmployeeId).FirstOrDefault<Employee>();
                if (it.employee != null)
                    it.employee.department = cache.GetListByPrimaryKeys<Department>(ed => it.employee.DepartmentId).FirstOrDefault<Department>();
            }).ToList();

            //多级关联查询二,USER-->EMPLOYEE-->DEPARTMENT   user.employee.department
            var list = Db.Queryable<SysUser, Employee, Department>((U, E, D) => new object[] {
           JoinType.Left,U.EmployeeId==E.EmployeeId,
            JoinType.Left,E.DepartmentId == D.DepartmentId}
            ).Where((U, E, D) => U.UserCode == userCode)
            .Select((U, E, D) => new { U = U, E = E, D = D }).ToList();
            var user2 = new SysUser();
            user2.employee = new Employee();
            user2.employee.department = new Department();
            user2 = list[0].U;
            user2.employee = list[0].E;
            user2.employee.department = list[0].D;            //一级关联查询,直接通过字表ID查询字表实体信息



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: