[英]How to do left joins in LINQ on multiple fields in single join
我正在嘗試對LINQ執行這個簡單的SQL查詢。 但它給我錯誤。
這是需要轉換為LINQ的SQL查詢
DECLARE @groupID int
SET @groupID = 2
SELECT *
FROM dbo.Person p
LEFT JOIN dbo.PersonGroup pg ON ( p.PersonID = pg.PersonID AND pg.GroupID = @groupID)
忽略@groupID。 它將作為LINQ查詢的函數參數提供。
這是我試過的LINQ查詢。
from p in Person
join pg in PersonGroup on new { p.PersonID, groupID } equals new { pg.PersonID, pg.GroupID } into t
from rt in t.DefaultIfEmpty()
其中groupID作為函數參數提供。 GroupID和PersonID都是int。 但它給了我以下錯誤,
Error 2 The type of one of the expressions in the join clause is incorrect. Type inference failed in the call to 'GroupJoin'.
很少的幫助將不勝感激。
你的守則
from p in Person
join pg in PersonGroup on new { p.PersonID, groupID } equals new { pg.PersonID, pg.GroupID } into t
from rt in t.DefaultIfEmpty()
將其更改為
from p in Person
join pg in PersonGroup on new { Person = p.PersonID, Group = groupID } equals new { Person = pg.PersonID, Group = pg.GroupID } into t
from rt in t.DefaultIfEmpty()
這樣它將使用匿名類型加入
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.