【发布时间】:2013-06-05 09:39:29
【问题描述】:
我需要能够保存所有像这样更新的数据。
用户插入汽车型号(品牌、类型、年份)。回来更新一年。我需要能够保存两者,以便他们了解他们所做的所有工作的历史。最好的方法是什么?
【问题讨论】:
标签: sql sql-server entity-framework
我需要能够保存所有像这样更新的数据。
用户插入汽车型号(品牌、类型、年份)。回来更新一年。我需要能够保存两者,以便他们了解他们所做的所有工作的历史。最好的方法是什么?
【问题讨论】:
标签: sql sql-server entity-framework
有很多方法可以做到这一点。一种方法是编写一些 SQL 触发器并完全在数据库中完成。看看here 的一些线索:
另一种方法是在实体框架代码中进行审计。有一个名为 AuditDbContext 的 nuget 包,其源代码位于 Codeplex。
您需要决定是在EF 还是SQL 中进行审核。显然,如果您需要审核所有内容,并且有时可能会从不使用相同 EF 数据层的不同应用程序(例如不同的技术等)访问数据库,那么 SQL 触发器很可能是要走的路。
【讨论】:
也许(如果您经常面临“历史”问题)CQRS 模式对您很感兴趣; a good primer,Microsoft on CQRS。在 .NET 上为这种模式构建了一个框架(我还没有尝试过):NCQRS。
如果您现在真的只想满足问题中的要求并且您使用的是 SQL Server 2010 或更高版本,那么Change Tracking 可能是另一种选择。我更喜欢触发器(但最终所有此类暗处理日志记录解决方案都会带来额外的风险)。
【讨论】: