我想创建一个接受 sql 查询作为参数并返回 DataReader 的辅助方法。
我写了这样的东西:
private IDataReader GetReader(String query)
{
try
{
var connection = dbProvider.CreateConnection();
var command = dbProvider.CreateCommand();
command.CommandText = query;
command.Connection = connection;
command.Connection.Open();
return command.ExecuteReader();
}
catch (Exception ex)
{
...
}
}
客户端代码如下所示:
public List<FileGroupDetail> LoadGroupDetail()
{
String query = ...;
using (IDataReader reader = GetReader(query))
{
return reader.Select(...);
}
}
尽管在所有客户端调用中都使用了 using 语句,但我遇到了与连接池相关的问题(超时、传输级错误……)
我的下一步是添加接受连接作为参数的 GetReader 重载。这是一个好习惯还是有更好的模式?