У меня есть таблица Table1
со столбцом State
, который 1
означает нормальные данные, а 10
означает удаленные данные, и я хочу отменить операцию удаления и обновить этот столбец до 10
, когда я удаляю его вEF Database First:
public override int SaveChanges()
{
foreach (var entry in ChangeTracker.Entries())
{
switch (entry.State)
{
case EntityState.Deleted:
entry.State = EntityState.Modified;
entry.CurrentValues["State"] = 10;
break;
default: break;
}
}
return base.SaveChanges();
}
и удалите вот так:
var data = dbContext.Table1.Find(primaryKey);
dbContext.Table1.Remove(data);
dbContext.SaveChanges();
до base.SaveChanges()
Я проверил State
значение в entry.Entity
, оно было изменено с 1
до 10
, но после SaveChanges
значение State
в базе данных не изменилось (все еще 1
).
как я могу заставить эту работу работать?