0

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

4

0 回答 0