wpf - WPF 是否会破坏 Entity Framework ObjectContext?

标签 wpf entity-framework mvvm

我开始使用 Entity Framework 4,并且准备编写 WPF 演示应用程序以更好地学习 EF4。我的 LINQ 查询返回 IQueryable<T> ,我知道我可以将它们放入 ObservableCollection<T>使用以下代码:

IQueryable<Foo> fooList = from f in Foo orderby f.Title select f;
var observableFooList = new ObservableCollection<Foo>(fooList);

那时,我可以将 View 模型上的适当属性设置为可观察集合,我将获得 View 和 View 模型属性之间的 WPF 数据绑定(bind)。

这是我的问题:当我将我的 foo 列表移动到可观察集合时,我会破坏 ObjectContext 吗?或者换一种说法,假设我正在正确处理我的 ObjectContext,EF4 会正确更新模型(和数据库)吗?

我问的原因是:NHibernate 在集合级别跟踪对象。如果我移动 NHibernate IList<T>对于可观察的集合,它破坏了 NHibernate 的更改跟踪机制。这意味着我必须做一些非常复杂的对象包装才能让 NHibernate 与 WPF 一起工作。我将 EF4 视为一种免除所有这些的方法。

那么,要让 EF4 与 WPF 一起工作,是否就像删除我的 IQueryable<T> 一样简单?结果为ObservableCollection<T> .这会保留对我的 EDM 实体对象的更改跟踪吗?谢谢你的帮助。

最佳答案

您需要将 ObservableCollection 与 ObjectContext 同步。如何做到这一点显示了 的 BookLibrary 示例。 WPF Application Framework (WAF) .寻找 EntityObservableCollection。

关于wpf - WPF 是否会破坏 Entity Framework ObjectContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2433591/

相关文章:

c# - 如何使 WPF 样式可继承到派生类?

c# - 将切换按钮的选中状态绑定(bind)到用户控件的可见性

c# - 为什么我的代码在每个可能的点都关闭它后仍然在进行延迟加载?

c# - 我什么时候应该使用 CompiledQuery?

c# - 使用反射在我的 ViewModel 中创建通用类型命令有什么缺点?

c# - 属性初始化和比较时间

c# - Silverlight DataGrid 列验证

c# - 销毁控件

c# - WPF 与网络摄像头集成

c# - EF :6 - How to skip insertion of value if value has default value set in DB?