2012-03-22 4 views
1

У меня есть приложение WPF с MVVM, Entity Framework и WCF-службой.Связывание данных с объектами EF или ViewModel

Я создал Self-Tracking Entities, поэтому классы сущностей уже реализуют INotifyPropertyChanged. Должен ли я привязывать свойства этих классов напрямую (например, имея свойство ObservableCollection<Author> Authors в моей главной модели ViewModel), или мне нужно создать ViewModel с теми же свойствами (и иметь свойство ObservableCollection<AuthorViewModel> Authors в главной ViewModel)?

Другой вопрос, не имеющий отношения к названию, но хорошо. Перед использованием STE я использовал классы POCO для своих объектов, но они не являются сериализуемыми, и служба WCF столкнулась с проблемой. Есть ли простое решение?

+2

Почему ваши POCO не были сериализуемыми? Все, что должно было быть принято, это атрибут или два. –

+0

Можно ли изменить созданные классы POCO? – Peekyou

+0

Лучше изменить шаблон, который генерирует POCOs для добавления соответствующих атрибутов. –

ответ

1

Рекомендованный ответ заключается в использовании ObservableCollection<AuthorViewModel>, главным образом потому, что, если какая-либо дополнительная логика, специфичная для пользовательского интерфейса, должна быть реализована, то эта логика должна быть в ViewModel, а не в модели. По моему опыту, всегда проще обертывать вашу модель в режиме просмотра, хотя бы для согласованности.

+0

Я согласен с вами в том, что вы моделируете модель в своем представлении. Мод позволяет использовать отдельные изменения вида ViewModel без изменения модели (особенно приятно, когда модель EF POCO) – Erick

Смежные вопросы