2012-04-08 57 views
0

我正在學習交易,我沒有在真實項目中使用交易的經驗。我知道我們可以在ADO.NET,Stored Procedure和WCF中編寫事務。我的困惑是在哪裏寫交易更合適?我們是否需要在多個地方寫交易?如果我們在不止一個地方寫交易,績效是否會受到影響?與不同類型的交易相混淆

任何人都可以引導我以正確的方式?

Thx!

回答

1

這裏是一個簡單的解釋。

爲了獲得最佳性能,我儘可能將事務寫入數據庫(在存儲過程中)。這通常是管理交易的最簡單方式,並且需要最少量的代碼。

但是,有些情況下這是不可能的。例如,可能會更新兩個不同的數據庫(或其他類型的數據存儲)。在這種情況下,您需要從應用程序內部管理事務(使用ADO.Net)。

同樣,對於WCF,如果通過服務執行多個任務,如果無法在數據庫中處理該服務,則可能需要處理該服務中的事務。

+0

嗨DOK,謝謝你的回覆!我還發現了一個類TransactionScope,MSDN上的文檔表示它使交易代碼塊成爲可能。數據庫或ado.net中的事務是通過連接創建的,但是我沒有發現這個類與文檔中的連接有關,是否意味着它只是事務代碼塊,不涉及連接? – James 2012-04-09 01:40:05

+0

事務不一定直接用數據庫完成。例如,可以通過調用兩個不同的Web服務來完成。 – DOK 2012-04-09 12:52:45