实体框架中的字段更改跟踪

时间:2011-08-30 07:58:47

标签: .net entity-framework entity-framework-4 change-tracking

有没有办法找出我的对象上已经更改了哪个字段。

示例问题:当更改某个日期字段并保存更改时,应将自定义逻辑应用于相关对象。

我尝试在context.SaveChanges();之前执行此操作,但ObjectStateManager并未向我提供所需的所有信息。

1 个答案:

答案 0 :(得分:1)

为什么要使用ObjectStateManager?你有拥有getter和setter的实体,所以只需将那个逻辑触发器放在setter中。您还可以在实体上实施INotifyPropertyChanged,并在所需属性在实体外部更改时处理事件。

否则,您必须对该实体使用ObjectStateManager获取ObjectStateEntry并比较其CurrentValuesOriginalValues。但这主要是错误的做法。逻辑应该由实体中的代码触发。