C#中业务对象的通用历史管理

时间:2013-04-17 20:18:48

标签: c# history

我想在我的Web API应用程序中实现类似的东西:

  • 每个修改数据的交易都应该“记录”
  • 日志应该在业务层中完成,并且可以存储在当前存储数据的常规SQL数据库中,或者存储在某种NoSQL数据库中。
  • 日志文件中的每个事务基本上都存储了执行事务的人员,时间,事务以及旧/新数据。
  • 这可以用于查看对象的更改历史记录,并可以帮助实现撤消/回滚。

我的问题是:

  • 这在某处作为库/框架存在吗?
  • 这有名字吗?
  • 我有什么明显的缺陷吗?

此致 丹尼尔

1 个答案:

答案 0 :(得分:0)

如果您使用的是DbContext,那么您可以覆盖 SaveChanges 方法。像这样:

public override int SaveChanges()
{    
    foreach (var entityState in ChangeTracker.Entries())
    {
        // loggin here
    }
    return base.SaveChanges();
}

或者您可以使用EFTracingProvider