2016-01-21 17 views
1

我正在用php的Laravel-like语法开发一个C#ORM。 当ORM启动时,它连接到数据库并执行任何查询(它还支持两个不同的读写连接),并且只有在连接被选中或丢失时才重新连接到数据库。C# - TSQL在同一个连接实例上的并行事务

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

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

实施例:

有一个REST操作,会导致事务被打开的URL,一些动作执行,然后事务提交(例如执行上的购物车的顺序)。如果多个用户(如此不同的WebOperationContext)调用该URL,会怎么样?是否可以打开并使用多个“并行”事务并提交它们?

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

感谢您的支持!

Mattia

回答

1

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

通常情况下,没有必要这样做。只需打开连接,因为你需要它们。由于共享,这很便宜。

一种常见的模式是立即打开连接和事务。然后,提交并处理所有内容。

这样并发的HTTP请求根本不会互相影响。

+0

所以这是SQL Server特定的权利?其他数据库引擎或ODBC驱动程序可能允许同一连接中的并行事务,对吗? –

+0

是的,他们可能会。数据库引擎*和*驱动程序必须支持这一点。这与你有关吗?这个问题被标记为SQL Server。 – usr

相关问题