是否可以编写一个采用当前上下文的方法,然后尝试保存对其的更改,但如果失败,它会刷新 db 中的值并再次应用更改?我有这个:
private static void SaveChanges(ScykDb context)
{
var savedChanges = false;
while (!savedChanges)
{
try
{
context.SaveChanges();
savedChanges = true;
}
catch (DbUpdateConcurrencyException ex)
{
var objContext = ((IObjectContextAdapter)context).ObjectContext;
objContext.Refresh(RefreshMode.StoreWins, ex.Entries.Select(e => e.Entity));
}
}
}
但它所做的只是应用预先修改的值或保持数据不变(取决于RefreshMode
)。我希望这段代码从数据库中获取数据,然后对其应用更改。这可能是不可能的,但我很好奇。