我對實體框架比較陌生,我一直在嘗試使用包含簡單連接的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