Я немного поэкспериментировал с этим. Приложение, которое я создавал, было довольно CRUD-у, и мой сервисный уровень в итоге предоставил почти те же интерфейсы, что и мои репозитории. Кроме того, большинство сервисных вызовов не добавляли никакой дополнительной логики поверх репо, они были просто сквозными методами. Единственное место, где сервисный слой сделал что-либо, было во время обновления или вставки новой записи. Я решил, что в системе, основанной на CRUD, уровень обслуживания вызывал больше трений, чем добавленную стоимость . В итоге я расширил классы своей бизнес-модели, чтобы логика обслуживания была представлена как операции с моделью, что позволило поддерживать методы моего контроллера простыми и чистыми.
Однако в более ориентированной на поведение системе, я думаю, сервисный уровень мог бы добавить больше ценности.