Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EF代码如何使用lambda expression实现左连接?_Entity Framework_Lambda - Fatal编程技术网

Entity framework EF代码如何使用lambda expression实现左连接?

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

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, 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})