我想在我的 Web API 应用程序中实现类似的东西:
- 每个修改数据的事务都应该被“记录”
- 日志应该在业务层完成,并且可以存储在当前存储数据的常规 SQL 数据库中,也可以存储在某种 NoSQL 数据库中。
- 日志文件中的每个事务基本上都存储了谁执行了事务、何时、什么事务以及旧/新数据。
- 这可用于查看对象的更改历史记录,并有助于实现撤消/回滚。
我的问题是:
- 这是否作为库/框架存在于某处?
- 这个有名字吗?
- 有没有我遗漏的明显缺陷?
问候,丹尼尔
如果您使用的是 DbContext,在这种情况下,您可以覆盖SaveChanges方法。像这样:
public override int SaveChanges()
{
foreach (var entityState in ChangeTracker.Entries())
{
// loggin here
}
return base.SaveChanges();
}
或者您可以使用EFTracingProvider