在处理多个潜在异常时,context.SaveChanges()
其中一个异常是OptimisticConcurrency
. 微软在http://msdn.microsoft.com/en-us/library/bb399228.aspx上的文档讨论了 EF 4.x 的这个......
try
{
// Try to save changes, which may cause a conflict.
int num = context.SaveChanges();
Console.WriteLine("No conflicts. " +
num.ToString() + " updates saved.");
}
catch (OptimisticConcurrencyException)
{
// Resolve the concurrency conflict by refreshing the
// object context before re-saving changes.
context.Refresh(RefreshMode.ClientWins, orders);
// Save changes.
context.SaveChanges();
Console.WriteLine("OptimisticConcurrencyException "
+ "handled and changes saved");
}
...但是在 EF 5.0 (RC) 上,这似乎不起作用,因为在我的 EF5、代码优先、DbContext 派生类Refresh()
中不存在。context
我确实看到context.Entry(context.SalesOrderHeaders).Reload();
了-但这似乎是直接从数据库重新加载,而不是刷新/合并(策略客户端获胜)。
任何想法如何处理 EF5 中的乐观并发异常?实际上,即使是关于 SaveChanges() 中异常处理的一般指针也会很好
谢谢