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 请求根本不会交互,这很好。
我正在使用 php 的 Laravel 类语法开发 C# ORM。 当ORM启动时,它会连接到数据库并执行任何查询(它还支持读取和写入两种不同的连接),只有在连接丢失或丢失时才重新连接到数据库。
由于这是一个 Web 框架 ORM,我如何处理同一连接上的并发事务?他们受支持吗?
我看到我可以手动将事务对象分配给 sqlcommand,但是我可以创建并行 sqltransactions 吗?
示例:
有一个 URL 的 REST 操作会导致打开事务、执行某些操作,然后提交事务(例如在购物车上执行订单)。如果多个用户(如此不同的 WebOperationContext)调用 URL 怎么办?是否可以打开并处理多个 "parallel" 事务然后提交它们?
其他 ORM 如何处理这种情况?他们是否使用了多个连接?
感谢大家的支持!
马蒂亚
SQL服务器不支持同一连接上的并行事务。
一般情况下,没有这个必要。只需在需要时打开连接即可。由于池化,这很便宜。
一个常见的模型是一个接一个地打开连接和事务。然后,在最后提交并处理所有内容。
这样并发 HTTP 请求根本不会交互,这很好。