リロードを使用した楽観的同時実行例外の解決(データベースが優先)を参照してください。
using (var context = new BloggingContext())
{
var blog = context.Blogs.Find(1);
blog.Name = "The New ADO.NET Blog";
bool saveFailed;
do
{
saveFailed = false;
try
{
context.SaveChanges();
}
catch (DbUpdateConcurrencyException ex)
{
saveFailed = true;
// Update the values of the entity that failed to save from the store
ex.Entries.Single().Reload();
}
} while (saveFailed);
}
なぜメソッドSaveChanges()
が後に呼び出されるのReload()
ですか?この呼び出しによって、データベース内のデータが変更されることはありません。