我正在使用此代码还原上下文中的更改。我的问题是,如何恢复除一种特定类型之外的所有更改,在该特定类型中,我想保留一列的值。
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
值保存/持久保存到数据库中,该怎么办?