[英]Multiple conditions on a left outer join clause in a LINQ query
我想用 LINQ 語法編寫以下 SQL 查詢,以了解 LINQ 查詢的基礎知識。
SELECT q.*, qpph.*
FROM [Questions] AS q
LEFT OUTER JOIN [QuestionPoolPickHandles] AS qpph
ON qpph.QuestionId = q.Id AND qpph.PickerId = 100
WHERE qpph.Id IS NULL;
如何使用 LINQ 語法在其ON
子句中同時應用左外連接和條件? 從我的閱讀來看,這似乎是不可能的。
這是我迄今為止嘗試過的。
var result = from q in context.Questions
join qpph in context.PoolPickHandles
on q.Id equals qpph.PickerId into Handles // notice the 'qpph.PickerId = 100' is absent
from m in Handles.DefaultIfEmpty()
where m == null
select q;
任何進一步的闡述將不勝感激。
在對問題的評論的幫助下,我想出了使用 LINQ 語法編寫查詢的方法。
from q in context.Questions
join qpph in context.PoolPickHandles
on new { questionId = q.Id, pickerId = user.Id }
equals new { questionId = qpph.QuestionId, pickerId = qpph.PickerId }
into Handles
from m in Handles.DefaultIfEmpty()
where m == null
select q;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.