Получить Entity до изменения для журнала - PullRequest
0 голосов
/ 26 мая 2018

Я создаю функцию журнала для приложения и хочу сохранить данные объекта до и после изменения, но не могу получить версию объекта до изменений.

Я пытался ответить здесь но ObjectStateManager в IdentityDbContext не найдено в .NET Core.

1 Ответ

0 голосов
/ 26 мая 2018

Переопределить SaveChanges и SaveChangesAsync методы в IdentityDbContext:

public override int SaveChanges(bool acceptAllChangesOnSuccess)
{
    OnBeforeSaveChanges();

    var result = base.SaveChanges(acceptAllChangesOnSuccess);

    return result;
}

public override async Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default(CancellationToken))
{
    OnBeforeSaveChanges();

    var result = await base.SaveChangesAsync(acceptAllChangesOnSuccess, cancellationToken);

    return result;
}

private void OnBeforeSaveChanges()
{
    var entries = ChangeTracker
        .Entries()
        .Where(p => p.State == EntityState.Added || p.State == EntityState.Modified || p.State == EntityState.Deleted)
        .ToList();

    foreach (var entry in entries)
    {
        foreach (var property in entry.Properties)
        {
            var originalValue = property.OriginalValue;
            var currentValue = property.CurrentValue;
        }
    }
}

Для получения дополнительной информации читайте это: Ядро Entity Framework: Таблица истории / аудита

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...