您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用MVC和实体框架实施审核日志/更改历史记录

使用MVC和实体框架实施审核日志/更改历史记录

如果您使用的是EF 4,则可以订阅SavingChanges活动。

由于Entities是局部类,因此可以在单独的文件添加其他功能。因此,创建一个名为的新文件Entities并在其中实现偏方法OnContextCreated来挂接事件

public partial class Entities
{
    partial void OnContextCreated()
    {
        SavingChanges += OnSavingChanges;
    }

    void OnSavingChanges(object sender, EventArgs e)
    {

        var modifiedEntities = ObjectStateManager.GetObjectStateEntries(EntityState.Modified);
        foreach (var entry in modifiedEntities)
        {
            var modifiedProps = ObjectStateManager.GetObjectStateEntry(entry.EntityKey).GetModifiedProperties();
            var currentValues = ObjectStateManager.GetObjectStateEntry(entry.EntityKey).CurrentValues;
            foreach (var propName in modifiedProps)
            {
                var newValue = currentValues[propName];
                //log changes
            }
        }
    }
}

如果您使用的是EF 4.1,则可以阅读本文提取更改

其他 2022/1/1 18:20:26 有523人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶