【问题标题】:.net transaction scope block second transaction.net 事务范围阻止第二个事务
【发布时间】:2010-11-08 08:57:28
【问题描述】:

在我的应用程序中,我有以下模式:

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

我的问题是 Function2 调用另一个连接到另一个数据库的函数......并且事务变得分布式并且我得到一个异常。

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

谢谢,拉杜

【问题讨论】:

    标签: c# .net database transactions transactionscope


    【解决方案1】:

    function2 附近,您可以使用TransactionScopeOption.RequiresNew 创建一个新事务,从而强制它进入自己的单独事务。由于该事务中只会使用一个资源(另一个数据库),因此不应成为分布式。

    【讨论】:

    • 如果我将第二个事务范围创建为 TransactionScope.Suppress 我会丢失父事务吗?
    • @RaduD 仅在我期望的事务范围内(但我想测试以确认这一点)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-07
    相关资源
    最近更新 更多