LINQ查询中的左外连接[重复]
Posted
技术标签:
【中文标题】LINQ查询中的左外连接[重复]【英文标题】:Left outer join in LINQ query [duplicate] 【发布时间】:2013-01-12 15:01:25 【问题描述】:可能重复:LEFT OUTER JOIN in LINQ
如何使用左外连接进行 LINQ 查询?
【问题讨论】:
只需在 google 中输入 c# linq left outer join 并至少获得 How to: Perform Left Outer Joins (C# Programming Guide) @KonstantinVasilcov 现在,现在,Konsty - 善待新人。你应该给他一个适当的链接like this one。你不同意吗? @KonradViltersten 81 的声誉足够公平,足以了解该网站的规则。我想我已经给了他我所期望的一切。 @KonstantinVasilcov 我怀疑你错过了我的意思。点击链接,看看我的意思。 :) 相关帖子 - Linq join iquery, how to use defaultifempty 【参考方案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 ...);
【讨论】:
以上是关于LINQ查询中的左外连接[重复]的主要内容,如果未能解决你的问题,请参考以下文章