在EF Code First中记录用户更改的历史记录

时间:2012-08-12 13:32:05

标签: entity-framework logging ef-code-first

我想在DB Records上保存用户更改的历史记录。诸如编辑记录之类的更改(例如,在yyyy / dd / mm中由user1将FirstName字段的值从'n'更改为'x'),删除记录和....

请建议一种在EF codefirst中实现此方法的方法。

编辑后:
哪一个更好?
1.创建一个表以保存所有表日志
2.为数据库中的每个表创建一个表

1 个答案:

答案 0 :(得分:2)

覆盖SaveChanges方法。

在SaveChanges方法中使用ObjectStateManager.GetObjectStateEntries遍历条目

然后使用ObjectStateEntry CurrentValues.DataRecordInfo.FieldMetadata []。FieldType.Name和entry.CurrentValues来获取名称值对