我有一个带有列Table1
的表State
,其中1
表示普通数据,10
表示已删除数据,
并且我想取消删除操作,并在EF Database First中删除此列时将其更新为10
:
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
之后,{数据库中的{1}}值未更改(仍为State
)。
我怎么做这项工作?