使用EF将更改存储在数据库中

时间:2018-06-25 07:43:22

标签: entity-framework .net-core

我有一个具有5个主要实体的应用程序(dotnet核心1.1,C#),每个实体都存储在其自己的表中。我想拥有一个主表,其中的所有更改都包含以下几列:

  • 用户ID(进行更改的人)
  • DateModified
  • 实体(更改了哪个实体)
  • EntityId(实体的ID已更改)
  • NewValue
  • OldValue

解决此问题的最佳方法是什么?手动完成这一切似乎是一项艰巨的工作。

1 个答案:

答案 0 :(得分:0)

您可以通过不同的方式实现这一目标。您可以使用NLogSerilog库创建日志记录框架。

由于您的实体很少,我的想法是创建一个ActionFilter并将其用于将详细信息记录到主表中。

 public class LogAttribute : IActionFilter
 {
  public LogAttribute()
  {

  }

  public void OnActionExecuting(ActionExecutingContext context)
  {

  }

  public void OnActionExecuted(ActionExecutedContext context)
  {
    // save details to master table
  }
}