Dapper ORM的实用程序类类似于存储库模式



我为Dapper ORM创建了以下存储库方法。

public SqlMapper.GridReader QueryMultiple(string query, object cmdParams = null, CommandType cmdType = CommandType.Text)
{
     SqlMapper.GridReader objMulti;
     var conn = GetSqlConnection();            
     objMulti = conn.QueryMultiple(query, cmdParams, commandTimeout: 0, commandType: cmdType);                                            
     return objMulti;
}
public IEnumerable<T> GetAll<T>(string query, object cmdParams = null, CommandType cmdType = CommandType.Text) where T : class
{
      IEnumerable<T> objList;
      using (var conn = GetSqlConnection())
      {
           objList = conn.Query<T>(query, param: cmdParams, commandTimeout:0, commandType: cmdType);
           conn.Close();
      }
      return objList;
}

查询方法的使用看起来很好,一旦操作完成,连接就会关闭。

new DapperRepository().Query("zyx").ToList();

但查询多个返回网格阅读器。那么,Dapper 在完成读取操作后是否会同时释放连接和读取器。请告知我的方法。

using (SqlMapper.GridReader multiResult = new DapperRepository().QueryMultiple(sql, new { id = id }))
{
   var dbPRTGroup = multiResult.Read<Customer>().Single();
    XXXXX
}

是的,确实如此。

根据最后一个代码块,连接和读取器操作都将在最后释放。这也通过在.NET Framework中使用using关键字来确保。

最新更新