【发布时间】:2015-02-20 11:16:20
【问题描述】:
我正在考虑将 Entity Framework 6.1.1 与 SQL Server 2008 R2 结合使用。
目前我正在使用代码优先 EF 功能创建模型和数据库。我的基本用例是创建对特定实体的所有更改的日志(ID 是关键列),以帮助审计员跟踪所做的所有更改以及由谁进行的更改。例如:
|ID|Version|Created Date|Created By|Modified Date|Modified By|Modify Action| ... (rest of entity fields)
-------------------------------------------------------------------------------------------------------
| 4| 12 | 12-Mar-14 | tom | 20-Feb-15 | jack | Update |
| 4| 11 | 12-Mar-14 | tom | 14-Feb-15 | jill | Update |
| 4| 1 | 12-Mar-14 | tom | 12-Mar-14 | tom | Create |
Entity Framework 是否支持这种类型的数据库方案?如果是这样,我该如何设置我的模型/解决方案来促进这一点?
我的另一种选择是拦截对DbContext 上的SaveChanges() 方法的所有调用,并将所有数据库更改记录到单独的Audit 表中,但这可能会使检索信息更具挑战性。
任何有关使用 SQL Server 和 EF 6 创建审计跟踪的帮助将不胜感激。
【问题讨论】:
-
这可能会让你上路:auditdbcontext.codeplex.com
-
我更希望有实体版本,因为这与其他数据库应用程序是一致的。目前版本控制由我不想实现的怪物 T-SQL 函数管理,尤其是使用 EF!
标签: c# sql-server entity-framework entity-framework-6