«Поиск» в этом примере - это IList<string>
сокращений состояний.Как правило, ваши POCO модели домена не включают эти параметры.ViewModels обычно берет на себя эту ответственность, ссылаясь как на исходную модель домена, так и на объект Lookup, но что происходит, когда модели домена вложены и вы используете шаблоны MVC (которые не будут иметь доступа к корневым свойствам исходной модели?
Есть ли способ включить Lookups в один объект, а Model - в другой объект для шаблона? Разрешено ли на лету собирать ViewModel, специфичную для этого шаблона, в представлении (которое должно включатьлюбые вложенные данные оттуда)? Я думаю, что статические методы для снятия значений Lookup это плохо.
Любые идеи?
Примечания (насколько мне известно):
ДоменМодель POCO из репозитория не изменяется по структуре. Если вам нужна одна Модель, чтобы иметь, например, объект Customer и параметры DDL для США, у вас обычно есть ViewModel, который ссылается на объект Customer и списки Customer Lookup.
Однако, когда у вас есть модель вложенного домена(объединенный корень), вложенные объекты не имеют места для размещения списков поиска, а шаблоны MVC не могут получить доступ к модели представления корневого уровня (их модель представления является частичной моделью).
Редактировать:
Есть ли способ поместить списки DDL в корневой уровень ViewModel, а затем, когда вы доберетесь до объекта Customer, создайте новый ViewModel, который ссылается на списки DDL корневого уровня и текущий объект Customerотправить по шаблону?Это позволит исключить дублирование данных в модели, а также использовать одну модель для всех видов.Единственным плохим будет Controller, как код сборки данных в вашем представлении (что так же плохо).