gpt4 book ai didi

postgresql - Npgsql、TransactionScope 和准备好的事务

转载 作者:行者123 更新时间:2023-11-29 12:30:16 26 4
gpt4 key购买 nike

<分区>

有人能说我可以将 npgsql 与 TransactionScope 一起使用吗?

此处手册中作为示例提供的代码:http://npgsql.projects.postgresql.org/docs/manual/UserManual.html不起作用。它只是在服务器上创建两个准备好的事务。

我遇到了与这个问题相同的问题:TransactionScope and Npgsql - Prepared Transaction Issue

是否有将 npgsql 与 TransactionScope 一起使用的解决方案?

更新:首先是我的目标:我需要在我的软件中的单个逻辑 事务中使用两个连接。最好的解决方案是 TransactionScope。 Npgsql 声明支持在系统事务中登记。

然后我的麻烦就来了:我使用文档中的代码,此代码执行以下操作:

  1. 创建事务范围
  2. 打开第一个连接
  3. 打开第二个连接
  4. 插入第一个连接
  5. 插入第二个连接
  6. 关闭第二个连接
  7. 关闭第一个连接
  8. 调用 scope.Complete()
  9. 处理范围

我等一下,在 9 步之后数据将完全提交给数据库。事实上,在第 6 步和第 7 步,npgsql 创建了准备好的事务,而在第 9 步什么都不做。最后我有两个准备好的事务,那个 block 数据库。并且没有人可以提交或回滚它们。

一般来说,如果我在范围调用完成之前关闭连接(例如因为异常),npgsql 会创建阻塞表的准备事务。我认为这不是正确的行为。我等待范围处理数据完全提交或完全回滚之后。没有任何准备好的交易。

您可以使用文档中的代码重复此错误。供引用 Devart 免费图书馆工作正确。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com