2016-01-21 53 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

相關問題