【问题标题】:Left outer join in LINQ query [duplicate]LINQ查询中的左外连接[重复]
【发布时间】:2023-03-19 12:19:02
【问题描述】:

可能重复:
LEFT OUTER JOIN in LINQ

如何使用左外连接进行 LINQ 查询?

【问题讨论】:

标签: c# linq


【解决方案1】:

您可以使用Enumerable.DefaultIfEmpty 方法进行左外连接。

你可能会看到:How to: Perform Left Outer Joins (C# Programming Guide) - MSDN

考虑以下来自 MSDN 的示例,

class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

class Pet
{
    public string Name { get; set; }
    public Person Owner { get; set; }
}

左外连接查询可以是:

var query = from person in people
            join pet in pets on person equals pet.Owner into gj
            from subpet in gj.DefaultIfEmpty()
            select new { person.FirstName, PetName = (subpet == null ? String.Empty : subpet.Name) };

【讨论】:

    【解决方案2】:
     var query = (from t1 in Context.Table1
                  join t2temp in Context.Table2 on t1.Id equals t2.Id into tempJoin
                  from t2 in tempJoin.DefaultIfEmpty()
                  select ...);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-13
      • 2014-07-29
      • 2016-10-02
      • 1970-01-01
      相关资源
      最近更新 更多