2010-01-04 79 views
1

我需要知道執行以下操作的最佳方法。我嵌套了業務級別的API(比如1級&級別2)。 L1需要打電話給L2。這兩個API都直接在它們自己的嵌套級別上使用數據庫層。ASP.NET:使用連接池和嵌套事務正確實現嵌套API調用

現在,在數據庫層,我每次都取從池中的數據庫連接,如下所示:

SqlConnection conn = new SqlConnection(connString); 
    conn.Open(); 
  1. 是否適合每個時間獲取數據庫連接上的每個DB級呼叫作爲以上?我知道它會從ASP.NET連接池返回一個連接。

  2. 但是,在整個嵌套調用(或貫穿當前http請求生存期)中維護相同的數據庫連接不是更好嗎?

  3. 每次都會導致嵌套TransactionScopes問題時從池中獲取連接?

回答

0

回答#1 這是確定的,但如果你的系統是真的很忙,你會需要你的連接字符串中的最大連接參數。理想情況下,(至少我這樣做的方式是: - 請求響應週期的一個連接。)

2,3取決於您如何實現這兩個層,並且如果只有一個連接,交易將會成爲問題這兩層正在使用。我猜這兩層並不是真正的「連接」,因爲你不需要交易來跨越這些層進行工作。如果是這樣,那麼我會走你的路線。