Age*_*ire 4 c# sql-server transactions transactionscope rollback
在这段代码中......
public static TransactionScope CreateTransactionScope(bool createNew = false)
{
return new TransactionScope(
createNew ? TransactionScopeOption.RequiresNew : TransactionScopeOption.Required,
new TransactionOptions() { IsolationLevel = IsolationLevel.ReadCommitted });
}
Run Code Online (Sandbox Code Playgroud)
实际上,在这一个......
using (TransactionScope rootScope = CreateTransactionScope())
{
using (TransactionScope nestedOne = CreateTransactionScope())
{ nestedOne.Complete(); }
using (TransactionScope nestedTwo = CreateTransactionScope(true))
{ nestedTwo.Complete(); }
// No committing, rollback 'rootScope'.
}
Run Code Online (Sandbox Code Playgroud)
什么交易将会陆续与根沿一个回-不会是唯一的nestedOne或两者nestedOne并nestedTwo?
nestedOne将加入根作用域,因此如果根作用域将回滚,nestedOne也将回滚,但不是nestedTwo,这是一个单独的事务.
就像你有"RequireNew"选项从封闭事务中分离事务一样,你可以使用"Suppress"选项来停止该范围的事务.
请查看MSDN中的以下列表,该列表提供了有关事务行为的精彩课程. http://msdn.microsoft.com/en-us/library/ms172152(v=vs.90).aspx