.net事务范围阻止第二次事务

时间:2010-11-08 08:57:28

标签: c# .net database transactions transactionscope

在我的申请中,我有以下模式:

using (TransactionScope transaction = new TransactionScope(TransactionScopeOption.Required))
{
    Function1();
    Function2();
    Function3();
}

我的问题是,Function2调用另一个连接到另一个DB的函数......并且事务变得分散,我得到一个异常。

在我可以进行不属于当前事务的db调用的代码中是否有任何方法?我在Function2中的代码只是读取...所以我不想成为当前事务的一部分。

谢谢,Radu

1 个答案:

答案 0 :(得分:3)

大约function2你可以用TransactionScopeOption.RequiresNew创建一个新的交易,从而迫使它进入自己独立的交易。由于该事务中只使用一个资源(另一个数据库),因此不应该分发。