是否可以编写一个接受当前上下文的方法,然后尝试保存对它的更改,但是如果它失败,它是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
)。我希望此代码从数据库中获取数据,然后对其应用更改。这可能是不可能的,但我很好奇。