Потому что получилось так, что часто нужно было бы писать одни и те же выражения для запросов к бд на уровне сервисов. Решилось это всё вынесением этого чуда в репозиторий, в котором как раз эти запросы и были абстрагированы.
можно в слой сервисов вынести и всё, одинаковую логику
ну тип это и будет репозиторий тогда)
ну вапще нет, репозиторий именно для скрытия реализации крудов в БД и возлагать на них сложную логику - такое себе
где это такое определение?)
Так у тебя запрос в бд может быть достаточно сложный. Вот тебе нужно что-то вытащить из базы и ты делаешь DbContext.Include.ThenInclude.Where.OrderBy.GroupBy bla bla и так делаешь много где. Зачем тебе это писать миллионы раз, если это можно вынести в отельную сущность и инжектить это куда, где нужно такое.
я не против такого, но это не реализация паттерна репозиторий
никто вам не мешает реализовывать сложную логику в бд реализуя интерфейс репозитория. главное чтобы интерфейс репо был в доменном слое который его использует и от него зависит. а слой данных реализует этот интерфейс репо
Как правило сложную логику в бд трудно поддерживать и расширять, и еще труднее не забыть при возможном переносе
Обсуждают сегодня