2014-11-07 60 views
-1

創建用於ASP.NET/Web服務數據訪問層時,認爲這是一個更好的做法:打開數據訪問層,用於建立連接的最佳實踐

1),然後關閉內的連接每種從數據庫中檢索數據的方法;

2)通過在構造函數中打開連接,然後在析構函數中關閉連接,有一個'連接類'處理連接數據庫和其他使用連接類的獨立類。

(我試着輸入僞代碼作爲一個例子,但stackexchange是不會接受的。對不起,沒有例子。)

我擔心第一種方法是要開一百萬不必要的連接數據庫隨着時間的推移。或者ASP.NET只是緩存連接,我不必擔心它?

第二種方法是否存在缺點或危險,我猜這會使連接更長時間到數據庫?

在此先感謝。

回答

2

擁有全局連接類的問題是多個Web處理程序會同時調用它。有時你可以擁有一個具有生命週期和可見性範圍的數據庫對象。 (例如,一張臨時表)。如果您在同一連接上運行多個同時查詢,則這些查詢可能會無意中互相干擾。

你想要的是一個的連接。在這裏,有很多連接保持打開狀態,但是當一個函數訪問一個連接時,它會獨佔使用它。

如果您正在使用SQL Server,那麼這是爲您提供免費:

SQL Server Connection Pooling (ADO.NET)