簡體   English   中英

如何在Linq左聯接中使用常量值?

[英]How to use constant value in Linq left join?

我需要在Linq表達式中的sql下面的左聯接中使用常量值。 如何在linq表達式中實現這一目標。

 SELECT *
    FROM [dbo].[s1AlertLog] AS [Extent1]            
  LEFT OUTER JOIN [dbo].[smManualChapter] AS [Extent4] ON [Extent1].[mwEventDetailKey] = [Extent4].[ID] and [Extent1].mwEventTypeKey = 300  Where Extent1.mwcUsersKey = 8000           

LINQ

    var list = (from alert in ctx.Set<S1AlertLog>()
                      join smManualChapter in ctx.Set<SmManualChapter>() on new { alert.MwEventDetailKey, alert.MwEventTypeKey } equals new { smManualChapter.ID, 300}
                          into temp1 
                      from tempChapter in temp1.DefaultIfEmpty()
                      select  alert
            );

  var result = list.Where(x=>x.mwcUsersKey == 8000);

您需要在匿名類型中使用相同的字段名稱:

var list = (from alert in ctx.Set<S1AlertLog>()
              join smManualChapter in ctx.Set<SmManualChapter>() 
                  on new { d = alert.MwEventDetailKey, t = alert.MwEventTypeKey } 
              equals new { d = smManualChapter.ID    , t = 300 }
                  into temp1 
              from tempChapter in temp1.DefaultIfEmpty()
              select  alert
        );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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