По моему мнению подобные вещи вредны для использования вашего времени.; -)
Теоретически, ваш репозиторий должен возвращать объекты или их традиционные коллекции, да.Однако даже в определении шаблона репозитория, на который вы ссылаетесь, используется термин «интерфейс, подобный коллекции».Конечно, IQueryable<Entity>
- это интерфейс, похожий на коллекцию, да?
На практике я почти никогда не задумываюсь о различии ... но я всегда стараюсь поместить весь код запроса в хранилище,Я бы сказал, что 90% моих методов репозитория на основе коллекций возвращают традиционные коллекции, а остальные 10% возвращают что-то на основе IQueryable<>
.Исключения обычно связаны с подкачкой страниц;так что я могу получить итоговые данные из запроса по строке , если необходимо , и мне не нужно получать эту информацию раньше, если она мне не нужна.Это немного лениво, но это работает для меня.
Но я действительно считаю хорошей идеей всегда пытаться возвращать традиционные коллекции, потому что это будет означать, что вы инкапсулируете все свои запросыв хранилище, где это должно быть.Я бы порекомендовал просто не увлекаться экстремальными уровнями приверженности чьему-то представлению о том, что требуется для pattern-X