【发布时间】:2014-06-07 20:01:17
【问题描述】:
我对实体框架比较陌生,我一直在尝试使用包含简单连接的 Lambda 编写 Linq 语句。我有三个表:Staff - StaffRole - Role。
我想要一个满足特定条件的特定角色的工作人员。用常规 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
});
不用说,这不起作用..
【问题讨论】:
-
请查看[如何使用 lambda 表达式连接 3 个表][1] [1]:[stackoverflow.com/questions/9120088/…
标签: c# sql linq entity-framework-4