.net 事务范围块第二个事务

发布于 2024-09-30 23:15:13 字数 359 浏览 2 评论 0原文

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

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

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

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

谢谢,拉杜

In my application I have the following pattern:

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

My problen is that Function2 calls another function that connects to another DB ... and the transaction becomes distributed and I get an exception.

Is there any way in the code in which I can make a db call that is not part of the current transaction? My code in Function2 does just a read ... so I don't want to be part of current transaction.

Thanks, Radu

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

演多会厌 2024-10-07 23:15:13

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

Around function2 you could create a new transaction with TransactionScopeOption.RequiresNew, thus forcing it into its own separate transaction. Since only one resource (the other database) will be used in that transaction is shouldn't become distributed.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文