Почему это работает как левое соединение? - PullRequest
0 голосов
/ 23 августа 2010

Я знаю, что этот запрос работает как левое соединение.Но что более важно, я хочу знать, почему он работает как Left Join?Как проходит выполнение запроса?

 var query = from cust in objNorthwindEntities.Customers
                        join orders in objNorthwindEntities.Orders on cust equals orders.Customer
                        into groupedCust
                        select new
                        {
                            custName = cust.ContactName,
                            orders = groupedCust
                        };

Запрос содержит cust equals orders.Customer, тогда как он работает в режиме левого соединения.

Заранее спасибо:)

1 Ответ

3 голосов
/ 23 августа 2010

почему он работает как Left Join?

Использование ключевого слова into в предложении join делает его групповым объединением :

С MSDN

Если не найдено элементов из правой исходной последовательности, совпадающих с элементом из левого источника, предложение join создаст пустой массив для этого элемента.

Похоже, что это работает как левое соединение, но на самом деле это групповое соединение, которое является специфической функцией Linq, не имеющей прямого реляционного эквивалента.

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