可能的重复项:
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 ...);