在下面的代码中,Provider 对象只有一个 DbConnection 实例。每个阅读器将引用相同的连接实例。根据微软的文档,第二个阅读器将从连接池中获得第二个连接。这可以正常工作。
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() 会尝试将两个连接都返回到池中吗?如果是这样,我怎样才能将第二个连接返回到连接池?