我对实体框架比较陌生,我一直在尝试使用包含简单连接的Lambda编写Linq语句。我有三个表格:员工 - StaffRole - 角色。Linq与Lambda相当于SQL
我要在满足一定条件下有一定的作用的一名工作人员。它很容易写在常规的SQL:
SELECT *
FROM Staff s
INNER JOIN StaffRole sr ON s.StaffId = sr.StaffId
INNER JOIN Role r ON sr.RoleId = r.RoleId
WHERE r.Description = 'SpecialisedHealthManager'
AND s.PrimaryShm = 0
现在,写在Linq声明并没有给我很多运气。我想这将是这样的:
var actingShm = db.Staff.Join(db.StaffRole,
inner => inner.StaffId,
outer => outer.Role,
(outer, inner) => new
{
StaffId = inner.StaffId,
FirstName = inner.Staff.FirstName,
Surname = inner.Staff.Surname,
SamAccountName = inner.Staff.SamAccountName,
RoleId = outer.Description
});
不用说,这是行不通的..
[如何在LINQ lambda中的多个表之间执行连接]可能的重复(http://stackoverflow.com/questions/9720225/how-to-perform-join-between-multiple-tables-in-linq-lambda ) –
请看看[如何用lambda表达式连接3个表格] [1] [1]:[http://stackoverflow.com/questions/9120088/how-to-join-3-tables- with-lambda-expression] – Babu