поколение классов viewmodel - PullRequest
3 голосов
/ 09 мая 2011

Я использую EF 4.1 в проекте Silverlight и по нескольким причинам я использую WCF напрямую, а не службы RIA.Теперь объектные модели, сгенерированные EF, являются присоединяемыми / отсоединяемыми к текстовому тексту и не чувствуют, что это очень хорошая идея - проходить через разные слои, особенно к представлению.

Я немного прочитал и понимаю, что могу создавать свои собственные классы (Q1. Эти классы называются классами ViewModel?), Которые имеют в основном автоматические свойства и только некоторую логику, необходимую для отображения и проверки, и я могуиспользуйте такую ​​библиотеку, как auto-mapper, для отображения между сущностью EF и моим классом (viewmodel ??).

Мне было интересно, есть ли библиотека / утилита, которую я могу использовать для генерации этих классов из сущностей EF?У меня больше, чем просто набор сущностей с множеством свойств, которые могут меняться в процессе разработки, и я не хотел бы создавать эти классы вручную и изменять / поддерживать их всякий раз, когда мне нужно изменить сущности модели EF.

Надеюсь понятно, о чем я спрашиваю;если нет, дайте мне знать, и я постараюсь уточнить немного больше и / или опубликовать несколько примеров.

Спасибо

1 Ответ

0 голосов
/ 09 мая 2011

ViewModel - это «Модель представления».

Ваш ViewModel должен предоставлять фактический объект (ы) сущности, а не его отдельные свойства.Например, если у вас есть объект «Клиент» со свойствами «Имя», «Фамилия» и «Возраст», у вас будет свойство Customer SelectedCustomer или List<Customer> AllCustomers вместо «Имя», «Фамилия», «Возраст» и т. Д.

Вы задаете для DataContext своего представления экземпляртребуемой ViewModel и использовать привязку для просмотра / обновления различных свойств ViewModel, в данном случае Customer.Forename, Customer.Surname и т. д.

ViewModel будет реализовывать INotifyPropertyChanged интерфейс для повышениясообщения об изменении какого-либо из его свойств, чтобы уведомить View о любых изменениях и обновить View.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...