【问题标题】:Keeping History in Entity Framework/ Sql Server在实体框架/ Sql Server 中保存历史记录
【发布时间】:2013-06-05 09:39:29
【问题描述】:

我需要能够保存所有像这样更新的数据。

用户插入汽车型号(品牌、类型、年份)。回来更新一年。我需要能够保存两者,以便他们了解他们所做的所有工作的历史。最好的方法是什么?

【问题讨论】:

    标签: sql sql-server entity-framework


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      也许(如果您经常面临“历史”问题)CQRS 模式对您很感兴趣; a good primerMicrosoft on CQRS。在 .NET 上为这种模式构建了一个框架(我还没有尝试过):NCQRS

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

      【讨论】:

        猜你喜欢
        • 2010-11-30
        • 1970-01-01
        • 1970-01-01
        • 2012-12-31
        • 2014-08-23
        • 1970-01-01
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多