За последние несколько месяцев мы реализовали приложение с использованием DDD и CQRS. Одна вещь, с которой я все еще борюсь, — это лучший способ сохранения данных, особенно в нескольких источниках данных разных типов.
До этого момента мы использовали уровень интерфейса DAL с несколькими частичными реализациями этого DAL. Затем на уровне нашего домена мы используем репозитории для создания/сохранения объектов нашего домена в n количестве DAL. Это работает нормально, пока мы не перейдем к более сложным операциям, таким как разбиение на страницы и поиск. Это потребовало от нас не только сопоставления наших данных, но и сопоставления критериев упорядочения/поиска/разбивки на страницы.
Я читал мнения о том, что мы должны просто выставлять уровень сохраняемости (IE Entity Framework, файловая система, веб-службы) на уровень DDD и иметь доступ к репозиториям напрямую, чтобы они могли использовать преимущества функций, встроенных в такие вещи, как ORM. Мне это кажется дырявой абстракцией.
Есть ли шаблон, который я упускаю из виду, который поможет нам решить эти проблемы?