【问题标题】:Data binding to EF entities or to ViewModel数据绑定到 EF 实体或 ViewModel
【发布时间】:2012-04-06 21:59:15
【问题描述】:

我有一个带有 MVVM、实体框架和 WCF 服务的 WPF 应用程序。

我已经创建了自我跟踪实体,因此实体类已经实现了 INotifyPropertyChanged。 我应该直接对这些类的属性进行数据绑定(例如,在我的主 ViewModel 中具有 ObservableCollection<Author> Authors 属性)还是应该创建具有相同属性的 ViewModel(并且在主 ViewModel 中具有 ObservableCollection<AuthorViewModel> Authors 属性)?

另一个问题,与标题无关,但很好。 在使用 STE 之前,我为我的实体使用 POCO 类,但它们不可序列化,并且 WCF 服务遇到了问题。有没有简单的解决方案?

【问题讨论】:

  • 为什么你的 POCO 不能序列化?它应该采取的只是一两个属性。
  • 修改生成的POCO类可以吗?
  • 最好修改生成 POCO 的模板以添加适当的属性。

标签: c# wpf entity-framework data-binding mvvm


【解决方案1】:

推荐的答案是使用ObservableCollection<AuthorViewModel>,主要是因为如果需要实现任何额外的特定于 UI 的逻辑,那么该逻辑应该在 ViewModel 中,而不是 Model 中。根据我的经验,将模型包装在视图模型中总是更简洁,即使只是为了保持一致性。

【讨论】:

  • 我同意您将模型包装在您的 viewModel 中允许在不修改模型的情况下进行特定于 viewModel 的更改(当模型是 EF POCO 时尤其好)
猜你喜欢
  • 2023-03-15
  • 2016-08-10
  • 1970-01-01
  • 2014-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-08
  • 1970-01-01
相关资源
最近更新 更多