EF DbContext обратные изменения, кроме одного столбца - PullRequest
0 голосов
/ 28 декабря 2018

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

public void RollBack()
{
    var context = DataContextFactory.GetDataContext();
    var changedEntries = context.ChangeTracker.Entries()
        .Where(x => x.State != EntityState.Unchanged).ToList();

    foreach (var entry in changedEntries)
    {
        switch(entry.State)
        {
            case EntityState.Modified:
                entry.CurrentValues.SetValues(entry.OriginalValues);
                entry.State = EntityState.Unchanged;
                break;

            case EntityState.Added:
                entry.State = EntityState.Detached;
                break;

            case EntityState.Deleted:
                entry.State = EntityState.Unchanged;
                break;
        }
    }
}

Если у меня есть, например, объекты типа Student, Schoolи т. д., и я делаю изменения в различных сущностях и изменяю свойство с именем Status на Student, и я хочу отменить все сделанные изменения, за исключением того, что я хочу сохранить / сохранить в базе данных значение Status сущности Studentкак я могу это сделать?

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