Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 在EF CodeFirst中记录用户更改的历史记录_Entity Framework_Logging_Ef Code First - Fatal编程技术网

Entity framework 在EF CodeFirst中记录用户更改的历史记录

Entity framework 在EF CodeFirst中记录用户更改的历史记录,entity-framework,logging,ef-code-first,Entity Framework,Logging,Ef Code First,我想在数据库记录上保存用户更改的历史记录。更改,如编辑记录(例如,在yyyy/dd/mm中,user1将FirstName字段的值从“n”更改为“x”)、删除记录和。 请建议在EF codefirst中实现此功能的方法 编辑后: 哪一个更好? 1.创建一个表以保存所有表日志 2.为数据库中的每个表创建一个表覆盖SaveChanges方法 在SaveChanges方法中,使用ObjectStateManager.GetObjectStateEntries循环遍历条目 然后使用ObjectSta

我想在数据库记录上保存用户更改的历史记录。更改,如编辑记录(例如,在yyyy/dd/mm中,user1将FirstName字段的值从“n”更改为“x”)、删除记录和。

请建议在EF codefirst中实现此功能的方法

编辑后:
哪一个更好?
1.创建一个表以保存所有表日志

2.为数据库中的每个表创建一个表

覆盖SaveChanges方法

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


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

这里的类似问题:当然。但我编辑了问题。请检查它…根据您的描述,我只看到您需要一个包含以下内容的日志表:日期、用户、表名、RecordIdentifier(可能是PK值)、ColumnName、OldValue、NewValue、Action(删除、插入、更新?)