EF 6 DbContext Override AsyncSaveChanges

У меня есть проект веб-API, который использует Entity Framework 6.

Внутри моего файла DbContext я обычно перезаписываю метод SaveChanges, чтобы выполнить процедуру Audit Log, например:

public override int SaveChanges() {

     throw new InvalidOperationException("User ID must be provided");

 }

public int SaveChanges(int userId, Guid sessionUid) {
    // Get all Added/Deleted/Modified entities (not Unmodified or Detached)
    foreach(var ent in this.ChangeTracker.Entries().Where(p = > p.State == System.Data.EntityState.Added || p.State == System.Data.EntityState.Deleted || p.State == System.Data.EntityState.Modified)) {
        // For each changed record, get the audit record entries and add them
        foreach(AuditLog x in GetAuditRecordsForChange(ent, userId, sessionUid)) {
            this.AuditLogs.Add(x);
        }
    }

    // Call the original SaveChanges(), which will save both the changes made and the audit records
    return base.SaveChanges();
}

Теперь я хотел бы использовать функцию Async в Entity Framework 6, поэтому мне нужно переопределить метод SaveChangesAsync, но не могу найти ни одного примера того, как это сделать.

Кто-нибудь знает, как переопределить метод SaveChangesAsync.?

0 ответов

Другие вопросы по тегам