использование Linq с несколькими условиями where

у меня есть класс, представляющий таблицу в базе данных, которая определена:

public class MyClass{
    public int MyClassId{get;set;}
    public string Name{get;set;} 
    public string LastNamw{get;set;}
    public DateTime From{get;set;}
    public DateTime To{get;set;}
}

на котором я хочу запустить некоторый поисковый запрос против базы данных oracle.

теперь вопрос :

var list = context.MyClass
    .Where(x => x.From>= FromMyDate)
    .Where(x => x.To <= ToMyDate);


var list = context.MyClass
    .Where(x => x.From>= FromMyDate && x.To <= ToMyDate);

лучше ли использовать несколько строк с условием where или один? И почему... пожалуйста!--10-->

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

2 ответов


неважно

вы просто создаете дерево выражений, которое передается поставщику Oracle, и задача поставщика-создать результирующий SQL-запрос. Несмотря на то, что дерево выражений будет немного отличаться между ними, оно все равно должно привести к одному и тому же sql. Мне нравится использовать профилировщик sql, чтобы убедиться, что мои запросы linq производят эффективный sql.


Я буду следовать ответу Джона Скита, как опубликовано Vossad01.

правильный Linq где пункты