В чем разница между Where и Join в linq? - PullRequest
0 голосов
/ 10 июня 2010

В чем разница между этими 2 запросами? они полностью равны?

from order in myDB.OrdersSet
    from person in myDB.PersonSet
    from product in myDB.ProductSet
    where order.Persons_Id==person.Id && order.Products_Id==product.Id
    select new { order.Id, person.Name, person.SurName,  product.Model,UrunAdı=product.Name };

и

from order in myDB.OrdersSet
    join person in myDB.PersonSet on order.Persons_Id equals person.Id
    join product in myDB.ProductSet on order.Products_Id equals product.Id
    select new { order.Id, person.Name, person.SurName,  product.Model,UrunAdı=product.Name };

Ответы [ 2 ]

5 голосов
/ 10 июня 2010

Конечный результат должен быть таким же.

Но использование JOIN более понятно - это более очевидно, что вы делаете (объединяя три набора данных).

Мой личный подход "наилучшей практики" будет:

  • используйте WHERE для уменьшения и ограничения количества возвращаемых строк - обычно это ограничение одного набора данных (путем определения некоторых критериев, которые должны быть выполнены)

  • используйте JOIN, чтобы выразить намерение объединить две таблицы / наборы данных в одно общее поле (или набор полей)

1 голос
/ 10 июня 2010

Соединение показывает связь между таблицей более понятной, а также с меньшим количеством нажатий клавиш.

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