Ваши репозитории должны возвращать объекты домена, и клиент репозитория может решить, нужно ли ему выполнять сопоставление. Сопоставляя объекты домена с моделями просмотра (или чем-то еще) внутри репозитория, вы предотвращаете доступ клиента ваших репозиториев к базовому объекту домена.
Должен ли репозиторий возвращать сущности?
Короткий ответ: Нет. Длинный ответ: репозиторий отвечает за превращение сохраненных данных обратно в сущности (модели) и наоборот. Модель - это бизнес-модель, представляющая бизнес-объект.
Должны ли сервисы всегда возвращать Dtos или они также могут возвращать модели домена?
Да, вы должны вернуть DTO своим сервисным уровнем, поскольку вы общаетесь со своим репозиторием на сервисном уровне с членами модели предметной области и сопоставляете их с DTO и возвращаетесь к MVC контроллер и наоборот.
Следует ли вам использовать шаблон репозитория?
Шаблон репозитория облегчает тестирование логики вашего приложения Шаблон репозитория позволяет вам легко тестировать ваше приложение с помощью модульных тестов. Помните, что модульные тесты проверяют только ваш код, а не инфраструктуру, поэтому абстракции репозитория облегчают достижение этой цели.
Является ли репозиторий частью доменной модели?
Репозиторий, как и коллекция, несет ответственность за добавление объекта, получение объектов по идентификатору или сложным критериям и, в конечном итоге, за удаление объекта. … Репозиторий реализован на уровне домена, потому что он работает с объектами домена.