Ответ 1
Да, оба будут иметь один и тот же план выполнения. Я добавил трассировку sql и создаю те же операторы SQL
Этот вопрос относится к оптимизации запросов с использованием Linq с платформой Entity Framework.
Есть ли разница между цепочки .Where
и использованием &&
в одном предложении .Where
запроса linq с фреймворком сущности?
Например: предположим, что у меня есть следующий код:
var result = context.SomeEntity.Where(exp1).Where(exp2);
или
var result = context.SomeEntity.Where(exp1 && exp2);
При оценке этих операторов, которые дают один и тот же результат, выравнивает ли linq и инфраструктуру сущности таким же образом? то есть оба будут иметь один и тот же план выполнения и, следовательно, быть одинаково эффективными?
Да, оба будут иметь один и тот же план выполнения. Я добавил трассировку sql и создаю те же операторы SQL
Я всегда использую &&
, потому что он упрощает чтение кода. Используя несколько, где это создаст много дополнительного шума и сфокусируется на логике.