Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.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
C# 如何在LINQ中进行外部联接?_C#_Sql_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

C# 如何在LINQ中进行外部联接?

C# 如何在LINQ中进行外部联接?,c#,sql,linq,entity-framework,linq-to-entities,C#,Sql,Linq,Entity Framework,Linq To Entities,我定义了两个实体,它们映射到数据库中的两个表。在SQL中,我将执行如下连接: select * from tableA a left outer join tableB b on b.ID = a.ID where some condition 如何使用LINQ查询实现这一点?请参阅:关于MSDN 例如: var query = from person in people join pet in pets on person equals pet.Owner into gj f

我定义了两个实体,它们映射到数据库中的两个表。在SQL中,我将执行如下连接:

select *
from tableA a
left outer join tableB b on b.ID = a.ID
where some condition
如何使用LINQ查询实现这一点?

请参阅:关于MSDN

例如:

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

使用Labda表达式,您可以使用

例如:

var query =
  People
  .GroupJoin(
    Pets,
    person => person.PersonId,
    pet => per.Owner,
    (person, petCollection) =>
       new
       {
          Person = person,
          Pets = petCollection.Select(pet => pet.Name),
       });

我想是这样的:(左外连接)如何使用LINQ中的链方法语法来实现这一点?您需要使用GroupJoin()方法。谢谢你提供的信息。