在上下文中,事务内数据库状态和事务状态会是什么.savechanges(( 失败。我可以重用相同的事务但创建新上下文吗?
// Should the retry be at this level in case saveChanges() fail.
using(var transaction = new TransactionScope())
{
// retry at this level in case saveChanges() fail. Use the ambient transaction?
using(var context = new DbContext)
{
//do some update and encounter exception (e.g., concurrency exception.)
context.saveChanges();
}
transaction.Complete();
}
在上下文中,事务内数据库状态和事务状态是什么.savechanges(( 失败。我可以重用相同的事务但创建新上下文吗?
确切的行为特定于提供程序和错误。 但通用的答案是,失败可能会使整个事务甚至 DbContext 失败,因此在事务中的任意失败后无法重试。
它可能适用于并发异常或其他特定故障,但您需要将这些作为特殊情况进行测试和处理。