Я бы посоветовал вам «спрятать» свой текущий шаблон репозитория внутри слоя сервиса.Код доступа к данным не должен быть виден клиентам службы.
Можно реализовать коллекцию DTO, которые будут возвращены с уровня службы или приняты в качестве параметров.Эти объекты могут быть просто POCO для хранения данных без учета базы данных.
DTO обычно сопровождаются адаптерами для перевода в / из ваших классов доступа к данным (которые представляют таблицы).Этот подход позволяет изменять схему базы данных без изменения интерфейса уровня обслуживания.
Вы можете рассматривать эти DTO как модели в MVC, если ваш проект прост и данные для ваших представлений соответствуют DTO уровня обслуживания.Вы также можете определить свои модели в проекте MVC и позволить контроллеру или другому набору адаптеров преобразовывать модели в DTO.
Мой предпочтительный дизайн включает модель, объявленную в MVC (папка Models), которая работает со строго типизированными представлениями.Затем метод UpdateModel работает с этими классами.Следующий контроллер или ModelAdapter создает экземпляры DTO Service Layer и передает их сервисам.Адаптеры DTO внутри сервисов отвечают за заполнение классов доступа к данным из шаблона репозитория.