在下面的代码中,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