Есть некоторые свойства, которые не имеют смысла для домена, но необходимы для репозитория, например, ключ раздела.
Можно ли иметь в моем репозитории DTO, который расширит базовую реализацию объекта, добавив соответствующие поля?
Есть некоторые свойства, которые не имеют смысла для домена, но необходимы для репозитория, например, ключ раздела.
Можно ли иметь в моем репозитории DTO, который расширит базовую реализацию объекта, добавив соответствующие поля?
Это совершенно нормально. Пока этот DTO остается в репозитории. В PoEAA Фаулера:
Шаблон репозитория описывается как: выступает посредником между слоями отображения домена и данных, используя интерфейс, подобный набору, для доступа к объектам домена.
Пока репозиторий правильно выполняет свою работу (хранит и извлекает модели предметной области), реализация не имеет значения. Просто убедитесь, что любые детали реализации репозитория не распространяются на остальную часть проекта. Если вы добавляете DTO к своей сущности внутри репозитория, убедитесь, что вы возвращаете сущность без DTO или других не относящихся к делу дополнительных полей.
CQRS
у вас не будет такой проблемы. - person Constantin Galbenu   schedule 21.07.2017