Структура сущности: план выполнения нескольких отчетов - PullRequest
3 голосов
/ 01 марта 2011

Я планирую подготовить несколько методов, которые вернут мне уже отфильтрованную коллекцию элементов в таблице БД, а затем выполнят запросы к этим коллекциям. Мне интересно, будет ли первый фильтр выполняться отдельным оператором или он будет объединен.

, например

public IQueryable<Person> GetAlivePersons(){
    return db.Persons.Where(p => !p.IsDeceased);
}

public IQueryable<Person> GetElderPeople(){
    return GetAlivePersons().Where(p => p.Age > 75);
}

Второй метод ударит по БД один или два раза?

Спасибо

1 Ответ

2 голосов
/ 01 марта 2011

IQueryable переводится в sql только при доступе к коллекции результатов.Это потому, что ваш код один раз попал в БД. Эта тема объясняет этот момент

...