我目前正在将一些代码从 Silverlight/WCF RIA 服务转换为 WPF/ Entity Framework 。代码库广泛使用了 RIA 域上下文的 HasChanges 属性。 View 将绑定(bind)到此属性以确定按钮状态。例如,表单将绑定(bind)到此 HasChanges
属性,并且每当用户更改 DomainContext
内任何实体的任何属性时,HasChanges
将变为 true,并且 Save 和 Discard 按钮将变为启用。
经过一些研究,很明显 EF 在 HasChanges
上没有等效的 ObjectContext
属性。有没有人对如何在 Entity Framework 内复制此功能有任何聪明的想法?
我想这些将是此类属性(property)的重要特征:
HasChanges
属性将每当
加载到
ObjectContext
更改。 HasChanges
将变为 false每当
SaveChanges
方法是成功调用了
ObjectContext
。 HasChanges
属性抛出一个PropertyChanged
事件哪个 View 会 catch 以便更新
按钮状态/等。
有人有任何想法吗?也许自定义 ADO.NET EntityObject 生成器?
最佳答案
我遇到过同样的问题。解决方案不是很理想,但它有效。另请注意,我在 WPF 应用程序中使用自我跟踪实体。
检查更改
using (var context = new MyEntities())
{
context.MyTable.ApplyChanges(myTableInstance);
return context.HasChanges();
}
这很有效,即使对于对象图也是如此。
关于wpf - WCF RIA 的 EntityFramework 的 HasChanges,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6429546/