1

这是我自己的助手的代码片段,但它有一些错误。

  /// <summary>
  /// Execute a command that returns multiple result sets, and access each in turn
  /// </summary>
  public static  SqlMapper.GridReader QueryMultiple(string sql, dynamic param = null, string connectionName = null)
  {

      using (SqlConnection connection = GetOpenConnection(connectionName))

      { return connection.QueryMultiple(sql, param);}

  }

QueryMultiple 由外部程序手动调用和关闭。不久之后,SqlConnection 应该会自动关闭,如何包装我的助手?提前致谢。

4

1 回答 1

2

奇怪的是,这里的一个选择可能是:不要给它一个开放的连接。这还没有部署到 nuget,但是如果你从 github 拉取版本,它实际上现在需要更多地控制连接,如果需要的话。所有主要方法(Query[<T>], QueryMultiple, Execute)现在都可以在关闭的连接中正常工作,并在可能的情况下再次关闭它。因此,如果您有:

return GetClosedConnection(connectionName).QueryMultiple(sql, param);

GridReader然后它会在到达数据末尾时自动关闭。请注意,我已经对其进行了重新构造,以确保我们Dispose()在离开该方法时没有连接。

于 2012-10-22T13:33:01.643 回答