Обновление модели в asp.net mvc - PullRequest
2 голосов
/ 03 августа 2010

Наш менеджер проекта попросил нас провести рефакторинг приложения, в котором использовался шаблон репозитория (это было сделано с использованием Nerddinner в качестве примера), чтобы теперь использовать сервисный слой .Моя проблема сейчас заключается в том, что я не уверен, как обновить модель, потому что метод UpdateModel должен использоваться в контроллере ... Каков рекомендуемый подход к обновлению модели с использованием шаблона хранилища вместе со служебным уровнем ??пожалуйста помогите

1 Ответ

0 голосов
/ 28 сентября 2010

Я бы посоветовал вам «спрятать» свой текущий шаблон репозитория внутри слоя сервиса.Код доступа к данным не должен быть виден клиентам службы.

Можно реализовать коллекцию DTO, которые будут возвращены с уровня службы или приняты в качестве параметров.Эти объекты могут быть просто POCO для хранения данных без учета базы данных.

DTO обычно сопровождаются адаптерами для перевода в / из ваших классов доступа к данным (которые представляют таблицы).Этот подход позволяет изменять схему базы данных без изменения интерфейса уровня обслуживания.

Вы можете рассматривать эти DTO как модели в MVC, если ваш проект прост и данные для ваших представлений соответствуют DTO уровня обслуживания.Вы также можете определить свои модели в проекте MVC и позволить контроллеру или другому набору адаптеров преобразовывать модели в DTO.

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

...