Для меня наличие логики постоянства и ссылок на базовые технологии, такие как O / RM, в одном месте важнее, чем разделение ответственности за чтение / запись.Поэтому я объединяю команды и запросы в одном конкретном репозитории для каждого корневого агрегатного домена, обычно с абстрактным базовым классом для технологии персистентности (Nhibernate, Entity Framework и т. Д.).
Единственный раз, когда я разделяю их, это когда яЯ делаю полную реализацию CQRS (разделение ответственности по командам / запросам) с источником событий, т. е. когда чтение и запись происходят в совершенно разных областях моей кодовой базы с различными хранилищами данных.