Как выполнить LEFT JOIN в LINQ to Entities?

Я потратил последние 2 дня, пытаясь выяснить, как сделать реальное LEFT JOIN в LINQ, и я не был успешно. У меня есть таблица пользователей, в которой есть столбец "Primary2Address", который может быть и часто имеет значение NULL. , поэтому мне нужно выполнить LEFT JOIN здесь. Кроме того, в таблице адресов у меня есть больше отношений, которые могут быть NULL, поэтому мне нужно выполнить несколько LEFT JOINS.
Каждая моя попытка LINQ выводит СЕРЬЕЗНО СУМАСШЕДШИЕ операторы sql с СОЕДИНЕНИЯМИ, вложенными операторами SELECT и прочими дурацкими вещами.
Все, что мне нужно, это:

SELECT u.UserName FROM Users u 
LEFT JOIN Addresses a ON a.AddressiD = u.Primary2Address
LEFT JOIN States s ON s.StateID = a.Address2State
LEFT JOIN Countries c ON c.CountryID = a.CountryID

Пожалуйста, помогите! Пока что я решил создать хранимую процедуру, использующую приведенный выше оператор sql, но мне бы очень хотелось попробовать сделать это с помощью LINQ (L2E). Спасибо, ребята!

8
задан Losbear 15 November 2011 в 15:59
поделиться