1

I need to be able to save all the data that gets updated like so.

User inserts a car Model (Make, Type, Year). Comes back and Updates the Year. I need to be able to save both so they have a history of all the work that they did. What is the best way to do that?

4

2 回答 2

2

有很多方法可以做到这一点。一种方法是编写一些 SQL 触发器并完全在数据库中完成。在这里查看一些线索:

另一种方法是在实体框架代码中进行审计。有一个名为AuditDbContext的 nuget 包,其源代码位于Codeplex上。

您需要决定是否要在EF或 中进行审核SQL。显然,如果您需要审核所有内容,并且您有时可能会从不使用相同 EF 数据层的不同应用程序(例如不同的技术等)访问数据库,那么 SQL 触发器很可能是要走的路。

于 2013-06-09T17:20:24.427 回答
0

也许(如果您更频繁地面临“历史”问题)CQRS 模式对您很感兴趣;一本很好的入门书,Microsoft on CQRS。在 .NET 上为这种模式构建了一个框架(我还没有尝试过):NCQRS

如果您现在真的只想满足问题中的要求并且您使用的是 SQL Server 2010 或更高版本,那么更改跟踪可能是另一种选择。我更喜欢触发器(但最终所有此类暗处理日志记录解决方案都会带来额外的风险)。

于 2013-06-10T14:07:26.340 回答