Как я понимаю, модели домена - это классы, которые описывают только данные (совокупные корни). Это POCOs и не ссылаются на внешние библиотеки (ничего особенного).ASP.NET MVC: какой механик возвращает объекты ViewModel?
Просмотреть модели, с другой стороны, являются классами, которые содержат объекты модели домена, а также все специфичные для интерфейса объекты, такие как SelectList
. Модель ViewModel включает using System.Web.Mvc;
.
Репозиторий извлекает данные из базы данных и передает их нам через объекты модели домена. Какой механик или устройство создает объекты модели представления, заполняя их из базы данных? Будет ли это завод, имеющий доступ к базе данных? Не могли бы вы отобразить определенные типы, например System.Web.Mvc, в репозиторий? Что-то другое?
Например, если у вас есть выпадающий список городов, вы ссылаетесь на объекте SelectList в корневом каталоге вашего объекта View Model, прямо рядом с вашей ссылкой DomainModel:
public class CustomerForm {
public CustomerAddress address {get;set;}
public SelectList cities {get;set;}
}
Город должен прийти из базы данных и быть в виде объекта списка выбора. Надеемся, что вы не создадите специальный метод репозитория для извлечения только отдельных городов, а затем создадите резервный второй объект SelectList, чтобы иметь нужные типы данных.
Когда вы обрабатываете дополнительные данные, например, заполняет список выпадающих списков, вы извлекаете эти данные из репозитория? Вы создаете специальные модели домена для обработки этих «микро» моделей домена, таких как «Список городов»? Или есть какой-то другой шаблон, например, Factory, у которого есть доступ к db? –
Я нашел отличную запись об этом Стив Микелотти: http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx –