Как сделать внешнее объединение в LINQ? - PullRequest
3 голосов
/ 30 июня 2011

Я определил две сущности, которые отображаются в две таблицы в моей базе данных.В SQL я бы сделал соединение следующим образом:

select *
from tableA a
left outer join tableB b on b.ID = a.ID
where some condition

Как я могу сделать это с помощью запроса LINQ?

Ответы [ 2 ]

5 голосов
/ 30 июня 2011

Используя выражения Labda, вы используете GroupJoin

Пример:

var query =
  People
  .GroupJoin(
    Pets,
    person => person.PersonId,
    pet => per.Owner,
    (person, petCollection) =>
       new
       {
          Person = person,
          Pets = petCollection.Select(pet => pet.Name),
       });
4 голосов
/ 30 июня 2011

См .: Как выполнить левое внешнее соединение (Руководство по программированию в C #) в 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) };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...