Если я предоставляю свои объекты модели EF 4 (сущности EF4) в качестве свойств моей модели представления, я "ломаю" MVVM?
Должен ли я дублировать каждый класс Model как своего рода DTO и выставить эти DTO из ViewModel?
Я понимаю теоретическую ценность того, что представление "не знаю" о модели,но реальность такова, что (если я не предоставляю Модель для Представления через ViewModel), у меня должны быть некоторые классы, которые имеют те же свойства, что и классы Модели для привязки.Затем, во ViewModel, мне пришлось бы очистить свойства этих объектов DTO-ish для обновления соответствующих объектов EF (Model).
Это похоже на большой дополнительный код для написания и поддержки.Если я предоставляю сущности в качестве свойств моей ViewModel (и связываюсь с ними), я все равно могу использовать команды (то есть для сохранения или удаления), у которых их код / логика в ViewModel и состояние включения / выключения установлено посредством привязки к свойствам ViewModel.
Если вам интересно: "Каково это, когда вам нужно написать один или два DTO для вашей ViewModel?"Вы думаете, слишком мало.
У меня есть приложение с 75+ таблицами SQL (и, следовательно, с 75+ сущностями EF4).Мне не нравится идея писать и поддерживать 75+ DTO.Теперь я мог бы использовать T4 для генерации DTO для всех моих сущностей и даже сделать так, чтобы он генерировал частичные классы, чтобы я мог «настраивать» эти генерируемые DTO, не теряя настроек, если мне придется регенерировать.Тем не менее, я должен чувствовать, что это стоит того, чтобы делать все это ... и я еще не уверен в этом.
Мысли?