ASP.NET MVC: где вы собираете модель представления для представления?

Изнутри и снаружи, это уровни нашего приложения MVC:

  1. MS SQL / Таблицы / Представления / Сохраненные процессы
  2. Entity Framework 4.1 (ORM) с генерацией POCO
  3. Репозиторий
  4. Сервис (получить) и функции управления (сохранить)
  5. Маршрутизация -> Контроллер -> Razor View
  6. (клиент) JQuery Ajax с Knockout.js (MVVM)

Все в порядке, пока мне не понадобится создать единую ViewModel для шаг 5 для подачи как представления Razor, так и заголовка JSON / Knockout ViewModel:

  • , который включает все параметры раскрывающегося списка и варианты для полей ниже
  • Items - массив того, что мы отправляем клиенту, который становится ViewModel

Поскольку Контроллер не будет иметь прямого доступа к Репозиторию, означает ли это, что я создаю службу для каждого представления, которое позволяет редактировать контент? Мне нужно получить POCO от репозиторий плюс все необходимые параметры для каждого типа поля.

Кажется излишним создавать отдельные службы для каждого представления. Например, viewModel для редактирования адреса и отдельный viewModel для редактирования объекта недвижимости, у которого также есть адрес. У нас может быть дюжина форм, которые редактируют один и тот же адрес POCO.

Чтобы упростить ответ на этот вопрос, разрешает ли Контроллеру прямой доступ к репозиториям ненадежную абстракцию?

7
задан Zachary Scott 22 June 2011 в 03:20
поделиться