所以我想弄清楚我的數據庫連接的最佳實踐。我有一個大的.NET GUI作爲MySQL數據庫的前端。目前,我在應用程序加載時打開一個連接,並將其用於我需要的任何交互。但是,整個GUI是單線程的。多線程和數據庫連接
當我開始爲大型查詢添加BackgroundWorkers並執行時,我很擔心我的打開連接。例如,我知道我一次只能在該連接上打開一個dataReader。有了多個線程,用戶可以嘗試實例化更多。
爲應用程序保持一個打開的連接與爲每個交互打開一個新的連接有什麼優點/缺點?
這是什麼常見的設計模式?
Thanks-
喬納森
當你說的事務支持是不可能的ConnectAndDisconnect情況下,你說的是一個「全球性」的交易,因爲應用程序的啓動,將支持回滾一切嗎?如果沒有,即使使用ConnectAndDisconnect,您也可以獲得事務支持。你必須安排,以便確定「高層次」的事務,然後使用例如「TransactionScope的」在C#代碼(http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx) – FrenchData 2010-02-23 10:50:56
@法國數據 我被描述爲來自業務邏輯層的中層交易。我們已經嘗試了TransactionScope的方法,但它是不夠的,我們很快就遇到了麻煩,因爲中間層的代碼在不同的不可預見的方式使用。解決方案在某種程度上是兩種方法的混合體,我們的ConnectionManager類支持這兩種方法。 當然,從應用程序開始就不需要交易,這就是爲什麼混合解決方案更好。 – AureliusMarcus 2010-02-24 11:30:46