【发布时间】:2015-01-13 06:04:33
【问题描述】:
员工表
EmpID
Emp_First_Name
Manager_ID
Department_ID
RoleID
部门表
Department_ID
Department_N
我
角色表
RoleID
RoleName
连接三个表
var join = from u in db.TBL_Employees
join v in db.TBL_Departments
on u.Department_ID equals v.Department_ID
join x in db.TBL_Employees
on u.Manager_ID equals x.Emp_ID
join z in db.TBL_Roles
on u.RoleID equals z.RoleID
select new
{
Name = u.Emp_First_Name,
Department = v.Department_Name,
Manager = x.Emp_First_Name,
Role = z.RoleName
};
此查询工作正常。 但我想在 Lambda 表达式中编写相同的查询。 如何使用 Lambda 表达式显示相同的输出?
【问题讨论】:
-
这个查询语法有什么问题?与查询语法相比,
join的 Lambda 语法更加复杂且难以阅读。 -
此查询运行良好。但我想在 Lambda 表达式中编写相同的查询。
-
似乎这些表有明确定义的外键 - 为什么不确保这些是模型中的可导航关系,并使用
LoadsWith指定急切加载深度,从而完全避免连接?跨度>
标签: c# linq linq-to-sql