LINQ 查询中的左外部联接

本文关键字:外部 查询 LINQ | 更新日期: 2023-09-27 17:56:21

可能的重复项:
LINQ 中的左外部联接

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

LINQ 查询中的左外部联接

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

您可能会看到:如何:执行左外部联接 (C# 编程指南) - 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) };
 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 ...);