直接上代码
//一级关联查询,直接通过字表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查询字表实体信息