У меня есть tableA и tableB. Я хотел бы выполнить левое соединение с использованием лямбда-выражения.Это равный SQL-оператор:
SELECT * FROM tableA A LEFT JOIN tableB B ON A.userId=B.userId
Как я могу сделать это с помощью лямбда-выражения?
Обычно это ошибка при использовании явного join в LINQ to Entities.
join
Вместо этого используйте свойства навигации:
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
a.TableB
null
TableAs
a.TableB.Bar
LEFT JOIN