乔恩,不,你不需要使用 TransactionScope。乐观并发由 Linq 自动处理。您提供的链接中的代码示例很好地解释了,您不必自己回滚事务。我将使用与示例中相同的代码:
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");
}
请注意刷新,重新保存,这可以解决您的问题。您可以通过从 try 块中抛出异常来测试这一点。
最好的祝福