Валидация данных. Правильное расположение классов валидации
Посмотрел замечательное видео (ИМХО) о валидации в .NET и DDD, и у меня появился вопрос:
есть проект, где есть пока 2 слоя: BLL & DAL (реализован паттерн Репозиторий, есть DI (пока без IoC контейнеров), собственно, пытаюсь следовать правилам 3-х слойной архитектуры. И стоит задача валидации бизнес-логики (именно в BLL по условию, несмотря на противоречивость мнения в видео) перед вызовом CRUD методов сервиса. Почитал про FLuentValidator, но, поскольку, его лучше всего использовать именно для Presentation layer - я пока не буду его внедрять.
Что я имею сейчас: хочу сделать отдельный класс для валидации каждой конкретной сущности. Но встал вопрос: методам этих классов нужен будет доступ к БД, как это лучше сделать? Через DI нужных IRepository<какая-то модель> или в методах сервиса загрузить данные из БД в память и отдать коллекцией классу валидации(склоняюсь к этому варианту)?