Материал IQueryable, который Роб Конери добавил в витрину MVC, является инновационным, но ни в коем случае не является нормой, когда речь идет о создании репозиториев. Обычно хранилище отвечает за сопоставление вашего домена с базой данных. Возвращение IQueryable на самом деле не выполняет никакого отображения и полагается на уровень служб для этого. Это имеет свои преимущества и недостатки, но достаточно сказать, что это не единственный способ сделать это.
Тем не менее, вы заметите, что ваши службы становятся немного вонючими из-за дублирования кода. Например, если вы просто хотите получить список всех пользователей в вашей базе данных, вам необходимо определить эту функцию как в хранилище, так и на уровне служб. Однако, когда уровень сервиса сияет, когда для одной операции требуется несколько транзакций в / из базы данных.