現在のコンテキストを取得して変更を保存しようとするメソッドを作成することは可能ですか?失敗した場合は、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
)。このコードでデータベースからデータを取得し、変更を適用したいと思います。それはおそらく不可能ですが、私はそれについて興味があります。