在下面的代碼中,Provider對象只有一個DbConnection實例。每個閱讀器將引用相同的連接實例。根據Microsoft文檔,第二個閱讀器將從連接池獲得第二個連接。這工作正常。ADO.net連接池
using (var reader1 as IDataReader = Provider.GetReader(sqlStatement1))
{
while(reader1.Read())
{
using (var reader2 as IDataReader = Provider.GetReader(sqlStatement2))
{
while(reader2.Read())
{
//Do stuff with both statements
}
}
}
}
我想離開連接,只要我使用Provider對象。但是,我不想浪費連接池中的連接。將調用Provider.DbConnection.Close()嘗試將兩個連接都返回到池?如果是這樣,我怎麼能返回到連接池的第二個連接?
其實,這只是一個專注於連接的人爲的例子。真實世界的場景是我有一個長時間運行的後臺進程訪問數據庫。用戶正在進行搜索。我相信這個例子捕捉了處理手動釋放連接的重點。 – Sam 2010-07-27 16:51:22