entity framework – 如何为任何属性引发OnChanging?

在WPF / EF4.0 / MVVM应用程序中,我有一个编辑Customer实体的View。 在我的CustomerViewModel中设置属性“bool IsCustomerInEditMode”的最佳方法是什么,而不是对实体的每个单独属性采取OnChanging / OnChanged部分方法? 据我所知,没有OnEntityChanging方法……

谢谢!

编辑:答案:EntityState

编辑:在你的post中回答你的问题(设置bool IsCustomerInEditMode的最佳方法) –

订阅entity.PropertyChanging事件,在其中设置IsCustomerInEditMode == true; 订阅entity.PropertyChanged事件,在其中设置IsCustomerInEditMode == false;

我认为InstanceOfYourCustomer.PropertyChanging和InstanceOfYourCustomer.PropertyChanged您正在寻找的事件。 对于实体上的每个生成属性,如果属性发生更改,事件将触发(除非您使用部分类向实体添加其他属性,在这种情况下,您需要在这些属性的setter中添加对ReportPropertyChanging和ReportPropertyChanged的调用) )。

http://msdn.microsoft.com/en-us/library/system.data.objects.dataclasses.structuralobject.propertychanged.aspx

http://msdn.microsoft.com/en-us/library/system.data.objects.dataclasses.structuralobject.propertychanging.aspx

我正在使用EF4,并查看我的Model.Designer.cs文件……我所有实体的属性’setter都调用了ReportPropertyChanging和ReportPropertyChanged …这将触发你实体上的PropertyChanging和PropertyChanged事件,而args将会甚至告诉你哪个特定属性引发了改变的事件。