Я пишу простой метод, который должен по возможности удалять объект из базы данных, иначе он должен пометить запись как неактивную, если существует правило целостности, запрещающее удаление записи.
Код, который у меня естьis:
public ActionResult Delete(int id)
{
try
{
Service.Repository<TEntity>().Delete(id);
Service.SaveChanges(this.CurrentUser);
return this.RedirectToActionPermanent("Index");
}
catch (DbUpdateException)
{
Service.Repository<TEntity>().D
// Could not delete due to referential integrity so mark as inactive
var obj = Service.Repository<TEntity>().Find(id);
obj.Inactive = true;
// Error thrown here as obj is already marked as deleted
Service.SaveChanges(this.CurrentUser);
return this.RedirectToActionPermanent("Index");
}
}
Проблема, с которой я столкнулся, заключается в том, что после запуска кода в DbUpdateException и последующего выполнения save возникает другое исключение, так как объект по-прежнему помечается как «удаленный».Каков наилучший способ удаления исходного действия удаления из сущности, чтобы я мог снова попробовать сохранить?
- Править Я хотел сказать, что видел, что многие люди заявляли, что я должен избавиться от существующегоконтекст и получить новый.Мне это кажется немного неправильным в этом контексте, так как я добавляю контекст при каждом запросе Http через Unity.
Спасибо