Audit.NET - Entity Framework - 如何实施 OptOut
Audit.NET - Entity Framework - How to Implement OptOut
我正在使用 Audit.NET 和 Entity Framework 使用 MVC 应用程序 运行 .NET 4.6.1 实施审计。我能够通过启动配置审计,以便它捕获审计信息并使用 JSON 示例将其记录到自定义 AuditLog table 以存储整个模型。目前此实现正在运行,但是,我希望能够使用 OptOut,以便我可以通过 [AuditInclude] 属性专门定义要审核的模型。
下面是我的审计配置代码,我已将上下文定义为 OptOut,但它仍在记录所有数据库交互。
Audit.Core.Configuration.Setup()
.UseEntityFramework(ef => ef
.AuditTypeMapper(t => typeof(AuditLog))
.AuditEntityAction<AuditLog>((ev, entry, entity) =>
{
entity.AuditData = entry.ToJson();
entity.EntityType = entry.EntityType.Name;
entity.AuditDate = DateTime.Now;
entity.AuditUser = Environment.UserName;
entity.TablePk = entry.PrimaryKey.First().Value.ToString();
})
.IgnoreMatchedProperties(true));
DBContext
[AuditDbContext(Mode =AuditOptionMode.OptOut)]
public class DbContext : AuditDbContext
有谁知道如何使用 Audit.NET 的这种配置实现 OptOut?
将 Mode = AuditOptionMode.OptOut 放入 DbContext 的构造函数中,而不是作为属性。
它不起作用的原因是我指定了不正确的 AuditOptionMode。应该是AuditOptionMode.OptIn。我错误地认为,当您指定 AuditOptionMode.OptOut 时,它是在告诉框架您想要退出审核。但是,这实际上告诉框架您希望专门 OptOut 任何您不想被审计的实体。 IntelliSense 很好地解释了这一点,我只是错过了它。
执行此操作时,它通过属性定义以及 gev125 建议的构造函数工作。
[AuditDbContext(Mode = AuditOptionMode.OptIn)]
或
public DBContext()
{
Mode = AuditOptionMode.OptIn;
}
我正在使用 Audit.NET 和 Entity Framework 使用 MVC 应用程序 运行 .NET 4.6.1 实施审计。我能够通过启动配置审计,以便它捕获审计信息并使用 JSON 示例将其记录到自定义 AuditLog table 以存储整个模型。目前此实现正在运行,但是,我希望能够使用 OptOut,以便我可以通过 [AuditInclude] 属性专门定义要审核的模型。
下面是我的审计配置代码,我已将上下文定义为 OptOut,但它仍在记录所有数据库交互。
Audit.Core.Configuration.Setup()
.UseEntityFramework(ef => ef
.AuditTypeMapper(t => typeof(AuditLog))
.AuditEntityAction<AuditLog>((ev, entry, entity) =>
{
entity.AuditData = entry.ToJson();
entity.EntityType = entry.EntityType.Name;
entity.AuditDate = DateTime.Now;
entity.AuditUser = Environment.UserName;
entity.TablePk = entry.PrimaryKey.First().Value.ToString();
})
.IgnoreMatchedProperties(true));
DBContext
[AuditDbContext(Mode =AuditOptionMode.OptOut)]
public class DbContext : AuditDbContext
有谁知道如何使用 Audit.NET 的这种配置实现 OptOut?
将 Mode = AuditOptionMode.OptOut 放入 DbContext 的构造函数中,而不是作为属性。
它不起作用的原因是我指定了不正确的 AuditOptionMode。应该是AuditOptionMode.OptIn。我错误地认为,当您指定 AuditOptionMode.OptOut 时,它是在告诉框架您想要退出审核。但是,这实际上告诉框架您希望专门 OptOut 任何您不想被审计的实体。 IntelliSense 很好地解释了这一点,我只是错过了它。
执行此操作时,它通过属性定义以及 gev125 建议的构造函数工作。
[AuditDbContext(Mode = AuditOptionMode.OptIn)]
或
public DBContext()
{
Mode = AuditOptionMode.OptIn;
}