Многие разработчики, как правило, запрашивают большие результаты из LINQ to SQL, а затем обрезают их, вместо того чтобы полагаться на шаблон, использующий IQueryable, что означает, что вы создаете более усовершенствованный запрос вместо уточненного подмножества данных.
Возможно, вы видите, что это происходит: им нужно только подмножество, но они кодируют, чтобы вытащить все, а затем отфильтровывают данные до того, что им действительно нужно.
Шаблон репозитория с IQueryable обеспечит наиболее оптимизированное использование сервера SQL Server, позволяя разработчику запрашивать большой набор результатов и сокращать его на многих уровнях, пока он действительно не понадобится. К этому времени запрос не будет:
- Получить все
- Получить данные
- Подмножество фильтров
- Получить данные
- Фильтровать другое подмножество
- Получить данные
- Дисплей
Это:
- Из всех применяют фильтр, а затем еще один фильтр
- Получить данные
- Дисплей
Только мои мысли.