C# - 同一连接实例上的 TSQL 并行事务

C# - TSQL Parallel transactions on same connection instance

我正在使用 php 的 Laravel 类语法开发 C# ORM。 当ORM启动时,它会连接到数据库并执行任何查询(它还支持读取和写入两种不同的连接),只有在连接丢失或丢失时才重新连接到数据库。

由于这是一个 Web 框架 ORM,我如何处理同一连接上的并发事务?他们受支持吗?

我看到我可以手动将事务对象分配给 sqlcommand,但是我可以创建并行 sqltransactions 吗?

示例:

有一个 URL 的 REST 操作会导致打开事务、执行某些操作,然后提交事务(例如在购物车上执行订单)。如果多个用户(如此不同的 WebOperationContext)调用 URL 怎么办?是否可以打开并处理多个 "parallel" 事务然后提交它们?

其他 ORM 如何处理这种情况?他们是否使用了多个连接?

感谢大家的支持!

马蒂亚

SQL服务器不支持同一连接上的并行事务。

一般情况下,没有这个必要。只需在需要时打开连接即可。由于池化,这很便宜。

一个常见的模型是一个接一个地打开连接和事务。然后,在最后提交并处理所有内容。

这样并发 HTTP 请求根本不会交互,这很好。