- "Модели предметной области отделены от персистентных сущностей".
- "Лучше всего использовать шаблон репозитория на стороне команды (операции записи), поскольку он позволяет загружать агрегат целиком."
- "Для запросов ( операций чтения) нет особой пользы и, возможно, может оказаться нелогичным добавлять абстракцию поверх Efcore (например, с помощью шаблона репозитория)".
Для меня все это имело смысл, пока я не понял, что для того, чтобы мои запросы уровня приложения использовали dbContext, мне нужна зависимость от уровня инфраструктуры. Однако уровень инфраструктуры зависит от уровня приложения в отношении таких вещей, как аутентификация, ведение журнала, ObjectStorage и т. д. Это приводит к циклической ошибке зависимости.
Я не могу определить "IAppDbContext" интерфейс на уровне приложения, поскольку уровень приложения не знает об объектах персистентности, определенных на уровне инфраструктуры.
Интересно узнать, каким может быть решение этой проблемы?
Решения, о которых я подумал:
- Определите службу для каждого запроса на уровне приложения и реализуйте ее на инфраструктурном уровне. Но, как вы понимаете, это может быть очень неудобно.
- Разделить уровень инфраструктуры на два уровня: уровень инфраструктуры и уровень персистентности и позволить приложению зависеть от персистентности, убрав ошибку циклической зависимости, но это кажется как хак.
Подробнее здесь: https://stackoverflow.com/questions/787 ... or-queries
Мобильная версия