Это ... . сложно. Сначала начните с моего простого объяснения what a Repository is. Далее, концепция UoW злоупотребляется и злоупотребляется. Учитывая репозитории, подход DDD к работе с Aggregates означает, что репозиторий инкапсулирует UoW, поскольку все в сводном корне необходимо сохранить в целом. На уровне db UoW просто означает использование транзакций, и это работает даже с несколькими репозиториями, если они используют одну и ту же транзакцию.
Однако в большинстве случаев это неправильный дизайн, поскольку он обычно работает только для нераспределенных приложений и требует некоторого хранилища, совместимого с ACID. Хотя это может быть ваш случай, тот факт, что вы используете шаблон хранилища, означает, что вы хотите, чтобы ваше приложение было неуверенным, и это означает, что ваше приложение не должно знать о UoW, который является шаблоном, который можно использовать внутри персистентности (ORM или непосредственно через транзакцию db).
Итак, я бы сказал, что «правильный» ответ: репозиторий может использовать реализацию UoW, в зависимости от конкретных потребностей. Если вы используете ORM, то UoW используется автоматически.