Entity framework EF代码如何使用lambda expression实现左连接?
Sql: 我想在EF中使用lambda在这个sql中获得相同的结果 以下是我所做的:Entity framework EF代码如何使用lambda expression实现左连接?,entity-framework,lambda,Entity Framework,Lambda,Sql: 我想在EF中使用lambda在这个sql中获得相同的结果 以下是我所做的: select a.id, b.name from a left join b on a.id = b.id 在这里Select(o=>o),我只是不知道如何在sql中获得相同的结果 var list = entities.a .GroupJoin( entities.b, a => a.id, b => b.id, (a
select a.id, b.name
from a
left join b on a.id = b.id
在这里Select(o=>o)
,我只是不知道如何在sql中获得相同的结果
var list = entities.a
.GroupJoin(
entities.b,
a => a.id,
b => b.id,
(a, b) => new { a, b })
.Select(o => o)
.ToList();
我认为这篇来自MSDN的文章会很有帮助 这是上面文章的一段引文,可能会有帮助
select a.id, b.name
更新:
根据你的要求,Lambda表达式应该是这样的
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) };
不确定,如果它是正确的,但这是一个起点,至少…可能是重复的,也可能是这个,多亏了Naveed Butt。但我想使用lambda expression。我不知道如何在
中编码。选择()
谢谢。但我想使用lambda expression。我不知道如何编码选择部件。选择()这里的键应该是DefaultIfEmpty()
。请检查在Lambda表达式中可以使用它的位置。是否有任何特定的原因要使用Lambda表达式?linq查询工作得很好…我知道linq很好。我只想用另一种方式得到我想要的:)
.SelectMany(@a => @a.@a.b.DefaultIfEmpty(), (@a, joineda) => new {@a, joineda})