В настоящее время я разрабатываю и реализую структуру с использованием Domain Driven Design
концепций.
Я пытаюсь поместить Validation
в слой модели предметной области.
Иногда для проверки требуется доступ к базе данных и запрос к ней, например:
"querying to check multiple column unique index"
Что касается этого, а также того факта, что запросы должны быть написаны в классах уровня репозитория, получается, что объекты домена должны иметь ссылки на их интерфейсы репозитория на уровне модели предметной области, чтобы полностью провести валидацию на уровне модели предметной области.
Интересно, можно ли для объектов домена иметь доступ к репозиториям?
И если это не нормально, то как поступить с этой ситуацией?
Я имею в виду, следует ли перенести такие методы проверки на repository
или Application Service
слои? Если да, можно ли переместить методы проверки на эти уровни?
Или, поскольку службы домена могут иметь доступ к репозиториям, следует ли нам создавать domain services
в domain model layer
для проверки?
Как нам с этим справиться?
заранее спасибо