【发布时间】:2015-05-29 09:22:22
【问题描述】:
我已经编写了一个 LINQ lambda 查询,到目前为止它返回了所有没有相关培训行的员工,这些员工工作正常。我现在需要修改 where 子句以使用经理 id 将经理表加入员工。
我有点不确定如何修改这个左连接 lambda 以包含一个内连接。如果有人能指出我正确的方向,那将不胜感激。
var managerId = 1;
var query = db.staff
.GroupJoin(db.training,
s => s.id,
t => t.staff_id,
(s, t) => new {Staff = s, Training = t.FirstOrDefault()})
//TODO: join manager.id on staff.manager_id
.Where(st => st.Training==null);//TODO: modify where clause && manager.id == managerId
谢谢
【问题讨论】:
-
感谢您的回复,我正在考虑沿着查询表达式路线走,但想看看是否有人可以帮助我学习 Lambda 表达式,而不是任何事情
-
您可以简单地添加
staff.Where(s => s.managerId == managerId)。但我认为你应该使用导航属性,而不是连接。如果您需要帮助,请出示班级模型。