簡體   English   中英

LINQ 查詢中左外連接子句的多個條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM