【问题标题】:Does WPF break an Entity Framework ObjectContext?WPF 是否会破坏实体框架 ObjectContext?
【发布时间】:2010-03-12 15:08:19
【问题描述】:

我开始使用 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);

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

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

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

那么,要让 EF4 与 WPF 一起工作,是否就像将我的 IQueryable&lt;T&gt; 结果放入 ObservableCollection&lt;T&gt; 一样简单。这会保留对我的 EDM 实体对象的更改跟踪吗?感谢您的帮助。

【问题讨论】:

    标签: wpf entity-framework mvvm


    【解决方案1】:

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

    【讨论】:

    • +1 但不幸的是它需要一个魔术字符串作为 entitySetName - 使重构变得困难。
    猜你喜欢
    • 2010-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多