2010-11-24 55 views
2

我首先使用实体​​框架代码。我有一个实体需要保留更改历史记录。此实体具有双重属性,当它发生更改时,我需要记录它发生的金额更改金额和日期。这意味着我需要旧值减去新值,并在此值改变或调用dbContect.SaveChanges()时发布。如何调用实体框架SaveChanges()时写入更改日志?

这个项目非常简单,我想保持这种方式,所以我不希望添加服务层。我只是在MVC控制器中进行存储库请求。 (我知道这不是纯粹的,但它非常敏捷)

如何拦截此实体的更改以便我可以写入更改日志?

回答

3

您可以监听ObjectContext.SavingChanges事件,然后使用ObjectContext.ObjectStateManager属性来查找ObjectStateEntry(S)为您所感兴趣的实体类型。

ObjectStateEntry具有的属性来访问CurrentValuesOriginalValues,或者只使用GetUpdatableOriginalValues方法的可更新属性的原始值。

注:我没有测试过这个,但希望它能为你工作。

相关问题