// Rollback changes
switch (entry.State)
{
case EntityState.Added:
entry.State = EntityState.Detached;
break;
case EntityState.Modified:
entry.CurrentValues.SetValues(entry.OriginalValues);
entry.State = EntityState.Unchanged;
break;
case EntityState.Deleted:
entry.State = EntityState.Unchanged;
break;
}
Этот код используется после EF6 SaveChanges()
исключенияC# EF6 Откат изменений, EntityState.Unchanged ошибка
Мой scanrio, вставить некоторые значения и удалять старую, то я получаю исключение. Мои данные должны быть сохранены из-за отката, и веб-сайт должен работать нормально. Но я получаю это исключение в «EntityState.Unchanged» в секторе «EntityState.Modified:»
Message = Сбой операции: Отношения не могут быть изменены поскольку один или несколько из внешних ключевых свойств не является -nullable. При изменении отношения к связанному свойству внешнего ключа установлено значение null. Если внешний ключ не поддерживает нулевые значения , необходимо определить новое отношение, для свойства внешнего ключа должно быть назначено другое ненулевое значение, или связанный с ним объект должен быть удален. Source = EntityFramework
Почему я не могу изменить контекст БД обратно в предыдущее состояние?
EDIT:
Как я могу удалить зависимости?
workReport.sepapayments.Remove(sepaPayment);
workReportAccountSettlement.workreports.Remove(workReport);
Необходимо помнить, что предыдущие значения вашего имени так или иначе связаны, если вам нужно отменить изменения в данном DBC-тексте. Но если вы не измените данные в базе данных с помощью 'SaveChanges()', вы можете удалить DBC-текст и создать новый DBC-текст из значений базы данных. –
Я не могу так просто распоряжаться им. Я использую Ioc.var context = unitOfWork.Context как DbContext; – senzacionale