【问题标题】:C# - TSQL Parallel transactions on same connection instanceC# - 同一连接实例上的 TSQL 并行事务
【发布时间】:2016-01-21 17:19:15
【问题描述】:

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

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

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

例子:

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

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

感谢大家的支持!

马蒂亚

【问题讨论】:

    标签: c# sql-server transactions


    【解决方案1】:

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

    通常情况下,没有必要这样做。只需根据需要打开连接即可。由于池化,这很便宜。

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

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

    【讨论】:

    • 所以这是 SQL Server 特有的,对吧?其他数据库引擎或 ODBC 驱动程序可能允许在同一连接中进行并行事务,对吧?
    • 是的,他们可能会。 DB 引擎驱动程序必须支持这一点。这对你有用吗?该问题已标记为 SQL Server。
    猜你喜欢
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2016-06-17
    • 2011-06-23
    • 1970-01-01
    相关资源
    最近更新 更多