. Net Core 3, Чистая архитектура.
Я прочитал много статей о проверке данных с помощью CQRS. Например, там и там .
Я сделал несколько выводов:
- Необходимо проверить данные в DTO. Это контракт для сущностей.
- Некоторые предложения авторов проверяют дату в сущностях (домен).
- В CQRS AbstractValidator мы можем проверять тоже, но другие правила.
Проверка поля электронной почты будет в 1 и 2. Ограничение по возрасту будет в 3.
Но три проверки на сервере + одна на клиенте - проблема (большая DRY). Где лучше валидация в DTO или Entities? Я думаю в DTO, потому что когда я получаю DTO из ввода, я могу проверить и вызвать ModelState.IsValid. Но я читал некоторые статьи, которые также должны проверять входные данные в сущностях.
Итак, я запутался. Можете ли вы объяснить мне:
Если нужно проверить поле электронной почты и возрастное ограничение (18), где нужно поставить проверку в Чистая архитектура с CQRS?