Я использую Audit.EntityFramework.Core, где я реализую Аудит, используя методы DbContextHelper, IAuditDbContext и Overriding SaveChanges () и SaveChangesAsync (), Вместо наследования AuditDbContext .
public partial class MyContext: DbContext
{
private static DbContextHelper _helper = new DbContextHelper();
private readonly IAuditDbContext _auditContext;
public MyContext(DbContextOptions<MyContext> options) : base(options)
{
_auditContext = new DefaultAuditContext(this);
_helper.SetConfig(_auditContext);
}
public override int SaveChanges()
{
return _helper.SaveChanges(_auditContext, () => base.SaveChanges());
}
public override async Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken))
{
return await _helper.SaveChangesAsync(_auditContext, () => base.SaveChangesAsync(cancellationToken));
}
}
Мое требование состоит в том, чтобы добавить какое-либо настраиваемое поле в Audit
, но, поскольку я не наследую AuditDbContext, у меня нет доступа к context.AddAuditCustomField("key", object);
Я пытался вручную добавить реализацию AddAuditCustomField (), но не смог выяснить связь между evt.CustomFields ["sample"] и ExtraFields ["sample"].
_context.AddAuditCustomField("Sample", sample);
`
a.RequesterID = evt.CustomFields["Sample"] as string;
Я новичок в этой библиотеке, поэтому, пожалуйста, помогите мне. Спасибо.