我有一个查询:
// Query: gets recipients that have not been sent yet....
var query = (from rec in ent.Recipients 
join ch in ent.CampaignHistories on rec.RecipientID equals ch.RecipientID
into chl
from x in chl.DefaultIfEmpty().Where(xx => !xx.RecipientID.HasValue)
select new BRecipient()  
 {
   Email = rec.Email,
   Name = rec.Name,
   RecipientID = rec.RecipientID
 }).Take(remaining);
这基本上会在 SQL 中进行左连接,相当于:
Select * FROM            Recipients AS R LEFT OUTER JOIN
                         CampaignHistory AS H ON R.RecipientID = H.RecipientID 
WHERE        (H.RecipientID IS NULL)
我想要的是:
Select * FROM            Recipients AS R LEFT OUTER JOIN
                             CampaignHistory AS H ON R.RecipientID = H.RecipientID
AND H.CampaignID <> 21 
    WHERE        (H.RecipientID IS NULL)
如何创建 LINQ?