【问题标题】:How do I write the equivalent of a SQL LEFT JOIN in LINQ? [duplicate]如何在 LINQ 中编写相当于 SQL LEFT JOIN 的内容? [复制]
【发布时间】:2013-04-19 14:27:54
【问题描述】:

我需要将此 SQL 转换为 LINQ,非常感谢一些帮助。

SELECT * FROM Adx_eventSet AS es
LEFT JOIN afx_eventsponsor_eventSet AS spon
ON es.Adx_eventId = spon.adx_eventid

我试过了,但它不是左连接,所以只拉入一个结果。

from t in Adx_eventSet
join x in adx_eventsponsor_eventSet on t.Adx_eventId equals x.adx_eventid
select t

【问题讨论】:

标签: sql linq


【解决方案1】:

您想使用DefaultIfEmpty()。见下文。

var leftJoin = from adx_event in Adx_eventSet
               join adx_eventsponsor in adx_eventsponsor_eventSet
               on adx_event.Adx_eventId equals adx_eventsponsor.adx_eventid into j 
               from adx_eventsponsor in j.DefaultIfEmpty()
               select new 
               { 
                   Name = adx_event.Name,
                   Name = adx_eventsponsor != null ? adx_eventsponsor.Name : null  
               };

假设每个表都有一个Name 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-15
    • 1970-01-01
    • 2014-09-08
    • 2010-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多