我正在尝试配置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时,它会占用所有实体
答案 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());
}));