оставил соединение с помощью лямбда-выражения - PullRequest
4 голосов
/ 12 июля 2011

У меня есть tableA и tableB.
Я хотел бы выполнить левое соединение с использованием лямбда-выражения.Это равный SQL-оператор:

SELECT *
FROM tableA A
    LEFT JOIN tableB B ON A.userId=B.userId

Как я могу сделать это с помощью лямбда-выражения?

1 Ответ

5 голосов
/ 12 июля 2011

Обычно это ошибка при использовании явного join в LINQ to Entities.

Вместо этого используйте свойства навигации:

var q = Context.TableAs.Select(a => new { a.Foo, a.TableB.Bar });

LINQ to Entities объединит нулевые ссылки. Таким образом, если a.TableB равно null для некоторой записи в TableAs, тогда a.TableB.Bar вернет null вместо того, чтобы выдавать исключение нулевой ссылки. Так он ведет себя как SQL LEFT JOIN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...