Отказ от ответственности: Я довольно новичок в DDD и связанной с ним терминологии, поэтому, если я неправильно использую какие-либо понятия, пожалуйста, исправьте меня.Должен ли репозиторий отвечать за «сглаживание» домена?
В настоящее время я работаю на сайте с относительно простой модели предметной области (элементы каталога, каждый из которых хранит коллекцию CatalogImage предметов.)
Моего репозитория следует стандартному интерфейсу FindbyID(int ID)
GetAll()
... и т.д.
Проблема возникает при попытке найти конкретное изображение по его идентификатору; Я в конечном итоге с такими методами, как FindImagebyID(int CatalogItemID, int ImgID)
По мере развития новых ПРЕДПИСАНИЯ, и объектный граф становится более сильно вложенной, я мог видеть взрыв методов, таких как Find{NestedType}ByID(int catalogItemID,.....,int nestedTypeID)
Должен ли я просто возвращая IEnumerable из FindAll() и используя Linq на более высоком уровне для формирования этих запросов? Или это будет нарушением SoC?
Я действительно согласен с вашим ответом, просто интересно, если сущность/модель просто велика? – CSharpAtl
Мне нравится общий подход, но как метод FindByID CatalogImageRepository знает, к какому элементу каталога относится изображение? – gn22
@CSharpAtl Я не уверен, что это вопрос о том, насколько велика модель. Я думаю, что это скорее вопрос о том, как OP планирует запросить DAL. Если он всегда будет запрашиваться таким же образом (т. Е. FindById и т. Д.), То я думаю, что он в порядке, чтобы продолжать свой путь. Однако, если он начнет идти по пути динамического запроса, я думаю, что реализация Command Query Separation может быть лучшим способом, но в этом случае весь дизайн должен быть изменен. – Joseph