Как включить пользовательское поле в Audit.EntityFramework? - PullRequest
1 голос
/ 08 ноября 2019

Я использую 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;

Я новичок в этой библиотеке, поэтому, пожалуйста, помогите мне. Спасибо.

...