是否可以在上下文中配置所有内容?

时间:2018-08-25 00:53:24

标签: audit.net

我正在尝试配置Audit.net并定义用于保存日志的自定义逻辑。 有没有一种方法可以在上下文中配置包含的实体? 我试过了 `

public ResidentMasterContext(DbContextOptions options) : base(options)
{
   AuditDataProvider = new DynamicDataProvider();
   Mode = AuditOptionMode.OptIn;
   IncludeEntityObjects = true;
   EntitySettings = new Dictionary<Type, EfEntitySettings>
   {
      {typeof(Apartment), new EfEntitySettings()}
   };         
}

` 但OnScopeSaving不会触发。当我将模式更改为OptOut时,它会占用所有实体

1 个答案:

答案 0 :(得分:0)

我猜您指的是Audit.NET EntityFramework扩展。

如果您使用OptIn,则需要使用[AuditInclude]属性标记包含的实体,或者使用fluent API的Include方法。您可以查看文档here

使用流畅的API进行EF配置的示例,仅包含实体 User UserDetail

Audit.EntityFramework.Configuration.Setup()
    .ForContext<ResidentMasterContext>(config => config
        .IncludeEntityObjects())
    .UseOptIn()
        .Include<User>()
        .Include<UserDetail>();

输出配置示例:

Audit.Core.Configuration.Setup()
    .UseDynamicProvider(_ => _.OnInsertAndReplace(auditEvent =>
    {
        Console.WriteLine(auditEvent.ToJson());
    }));