Я не думаю, что вы должны позволять сборке вашего домена вообще ссылаться на что-либо из вашего собственного приложения. Это должно быть самое внутреннее собрание, которое абсолютно ничего не знает о внешнем. Он просто сидит и знает доменную логику.
Ваша модель домена не должна использовать репозитории, службы приложений должны.
(Если сущности домена действительно должны использовать репозиторий, его следует внедрить из служб приложений. Некоторые люди утверждают, что в этом нет необходимости, хотя - и я тоже так думаю).
Попробуйте взглянуть на это так: у вас есть служба приложений, которая является основным способом, которым ваш клиент / клиент / контроллер может использовать домен. Службы приложений определяют операции, которые можно выполнять в вашем приложении.
Служба приложений использует репозиторий для загрузки объекта домена, с которым необходимо работать, вызывает необходимый метод объекта домена и возвращает результат (если операции возвращают такое). Домен ничего не знает о службе приложений или хранилище.
Хороший способ начать организацию своего приложения таким образом - взглянуть на эту серию постов в блоге: http://jeffreypalermo.com/blog/the-onion-architecture-part-1/
И взгляните на внедрение зависимостей, оно может помочь вам решить другие проблемы, когда кажется, что у вас есть циклическая ссылка.
Спросите, есть ли у вас вопросы.