Entity Framework запрос Linq: .Где цепочка против && - PullRequest
24 голосов
/ 17 февраля 2011

Этот вопрос относится к оптимизации запросов с использованием Linq с Entity Framework.

Есть ли какая-либо разница между цепочечными предложениями .Where и использованием && в одном предложении .Where в linqзапрос с каркасом сущности?

Например: предположим, у меня есть следующий код:

var result = context.SomeEntity.Where(exp1).Where(exp2);

или

var result = context.SomeEntity.Where(exp1 && exp2);

При оценке этих операторов, которые даюттот же результат, одинаково ли оценивает linq и структура сущностей?т.е. оба будут иметь один и тот же план выполнения и, следовательно, будут одинаково эффективны?

Ответы [ 2 ]

21 голосов
/ 17 февраля 2011

Да, у обоих будет один и тот же план выполнения.Я добавил трассировку SQL, и оба создают одинаковые операторы SQL

2 голосов
/ 27 сентября 2012

Я всегда использую &&, потому что он облегчает чтение кода.Используя несколько Где, это создаст много дополнительного шума и отвлечет внимание от логики.

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