2013-02-20 77 views
0

我目前正在開發一個MVC 4項目,並且我們決定使用普通的舊SQL並且不依賴於EntityFramework。初始化數據庫連接的最佳實踐

我現在的問題是初始化數據庫連接的最佳做法是什麼。我想過使用打開連接的單例(連接字符串存儲在Web.config中),然後在整個應用程序生命週期中使用已建立的連接,但我不確定這是否是一種好方法!

+0

沒有最好的方法,只有最適合您的需求和情況,而且您必須自己弄清楚。這是非常有見地的,不適合在這裏恐怕.. – walther 2013-02-20 09:22:27

+0

你的意思是在整個應用程序生命週期中使用相同的連接實例? – 2013-02-20 09:22:45

回答

4

用於數據庫連接,儘可能遲地打開並儘早關閉

您應該在有需要時創建連接對象,而使用using塊更好,因爲Connection實現了IDisposable,您應該在完成連接時處置連接。

+0

@downvoter關心評論? – Habib 2013-02-20 10:20:44

+0

-1:對於數據庫,打開連接是非常昂貴的操作。分配PGA和東西。你不想每秒打開50個連接做簡單的選擇,你寧願使用一些池。 – Plouf 2013-02-20 10:21:15

+3

@Plouf,連接池在.Net中有處理,在不需要的時候關於配置連接對象,另外如果我在一個模塊中需要50個讀取,我會用一個連接來完成,但是會確保一旦完成連接,就要處理連接。 – Habib 2013-02-20 10:24:26

0

ODP.NET支持連接池,因此沒有任何理由(除非在您的具體情況下證明是另有說明)保留OracleConnection對象的Singleton對象。

這裏的最佳做法是爲每個語句使用連接(.NET連接對象,而不是物理連接)。

using(OracleConnection connection = ...) 
    { 
     ...Do work here 
    } 
0

如果您想了解更多有關類似方法的信息,請點擊此處:https://stackoverflow.com/a/10153406/1289283。我已經回答了這種困境。確保你不會按照應用程序的規模來做這件事,而是按照每個請求來做,否則你會陷入困境。每個應用程序對單用戶桌面應用程序都適用,不適用於webapps!並且不要爲此使用單例...