c#中业务对象的通用历史管理
本文关键字:历史 管理 业务 对象 | 更新日期: 2023-09-27 18:09:48
我想在我的Web API应用程序中实现这样的东西:
- 每个修改数据的事务都应该被"记录"
- 日志应该在业务层完成,可以存储在当前存储数据的常规SQL数据库中,也可以存储在某种NoSQL数据库中。日志文件中的每个事务基本上存储了谁执行了事务,何时,什么事务以及旧/新数据。
- 可以用来查看对象的更改历史,并且可以帮助实现撤消/回滚。
我的问题是:
- 它是否作为一个库/框架存在于某个地方?
- 这个有名字吗?
- 有什么明显的缺陷我错过了吗?
问候,丹尼尔
如果您正在使用DbContext,在这种情况下,您可以重写SaveChanges方法。这样的:
public override int SaveChanges()
{
foreach (var entityState in ChangeTracker.Entries())
{
// loggin here
}
return base.SaveChanges();
}
或者你可以使用EFTracingProvider