有没有办法找出我的对象上已经更改了哪个字段。
示例问题:当更改某个日期字段并保存更改时,应将自定义逻辑应用于相关对象。
我尝试在context.SaveChanges();
之前执行此操作,但ObjectStateManager
并未向我提供所需的所有信息。
答案 0 :(得分:1)
为什么要使用ObjectStateManager
?你有拥有getter和setter的实体,所以只需将那个逻辑触发器放在setter中。您还可以在实体上实施INotifyPropertyChanged
,并在所需属性在实体外部更改时处理事件。
否则,您必须对该实体使用ObjectStateManager
获取ObjectStateEntry
并比较其CurrentValues
和OriginalValues
。但这主要是错误的做法。逻辑应该由实体中的代码触发。