尝试使用SqlDataReaderdapper 但在标题上出现错误。下面是代码:
using (var reader = (SqlDataReader)con.ExecuteReader(query))
{
while (reader.Read())
{
//do stuff here with reader
}
}
Run Code Online (Sandbox Code Playgroud)
从源代码中可以看出,WrappedReader是:
#if DNXCORE50
internal class WrappedReader : WrappedDataReader
Run Code Online (Sandbox Code Playgroud)
或者:
#else
internal class WrappedReader : IDataReader, IWrappedDataReader
Run Code Online (Sandbox Code Playgroud)
和WrappedDataReader都IWrappedReader定义了一个Reader属性,允许您获取底层SqlDataReader. 因此尝试将您的代码更改为:
(SqlDataReader)((IWrappedDataReader)con.ExecuteReader(query)).Reader { ... }
Run Code Online (Sandbox Code Playgroud)
或者:
(SqlDataReader)((WrappedDataReader)con.ExecuteReader(query)).Reader { ... }
Run Code Online (Sandbox Code Playgroud)
话虽这么说,您可能希望实际使用原始(包装的)阅读器作为您的using子句 - 这样它将有机会对.Dispose(). 如果您这样做,您可以在子句正文中获取 sql readerusing并从那时起使用它。
| 归档时间: |
|
| 查看次数: |
1825 次 |
| 最近记录: |