Является ли хорошей практикой использование Queryable.ProjectTo <DtoModel>внутри метода репозитория, имеющего вместо этого более оптимальные SQL-запросы? - PullRequest
0 голосов
/ 04 марта 2019

Как рекомендует Шаблон репозитория , его методы должны возвращать Объекты доступа к данным .

Использование метода расширения Queryable ProjectTo из AutoMapper (http://docs.automapper.org/en/stable/Queryable-Extensions.html) в наших объектах DbContext, делает запрос sql проще и короче, но это делает наши методы для возврата объектов передачи данных .

DbContext.Books.ProjectTo (). ToListAsync () - будет запрашивать только поля, содержащиеся в BookDTO (например, Только Id и Name ), но не весь объект.

Итак,Хорошая идея сделать наш репозиторий для возврата объектов DTO и иметь вместо этого более оптимальные SQL-запросы?

1 Ответ

0 голосов
/ 06 марта 2019

Класс DbContext уже является хранилищем, поэтому мы просто используем запрашиваемые объекты прямо на нем.Если вы упаковываете DbContext, то вы можете просто выставить DbSet напрямую.

...