【发布时间】:2012-01-02 03:32:16
【问题描述】:
我想就跟踪用户在执行 CRUD 事件时所做更改的最简单方法征求您的意见。我正在开发一个用户对权限不太感兴趣的系统,但我真的想要一个复杂的日志来记录用户所做的更改。我正在使用 ASP.NET MVC 3、EF 和 NLog。
非常感谢任何建议:)
史蒂夫
【问题讨论】:
标签: asp.net-mvc-3 entity-framework nlog
我想就跟踪用户在执行 CRUD 事件时所做更改的最简单方法征求您的意见。我正在开发一个用户对权限不太感兴趣的系统,但我真的想要一个复杂的日志来记录用户所做的更改。我正在使用 ASP.NET MVC 3、EF 和 NLog。
非常感谢任何建议:)
史蒂夫
【问题讨论】:
标签: asp.net-mvc-3 entity-framework nlog
我使用基于约定的方法。每个实体都有一个关联的审计实体,其中包括基础实体的所有属性以及变更信息,包括变更是否成功。我覆盖了数据库上下文中的 SaveChanges 方法。对于每个被更改的实体,它会根据它创建一个包含新值的审计实体。它尝试保存更改,然后使用单独的审核上下文将每个审核实体与保存操作的结果一起保存。在构建审计实体时,我在数据上下文中使用注入实用程序来访问当前用户(通过 HttpContext.Current 用于 Web,通过 Environment.User 用于非 Web)。
我在http://farm-fresh-code.blogspot.com/2009/05/auditing-inserts-and-updates-using-linq.html 上发布了有关 LINQ to SQL 的早期版本的博客。你应该能够从中得到基本的想法。
【讨论】: