DataReaderExtensions.GetFieldValueAsync<T> 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
异步获取指定列的值作为请求的类型。
public static System.Threading.Tasks.Task<T> GetFieldValueAsync<T> (this System.Data.Common.DbDataReader reader, string name, System.Threading.CancellationToken cancellationToken = default);
static member GetFieldValueAsync : System.Data.Common.DbDataReader * string * System.Threading.CancellationToken -> System.Threading.Tasks.Task<'T>
<Extension()>
Public Function GetFieldValueAsync(Of T) (reader As DbDataReader, name As String, Optional cancellationToken As CancellationToken = Nothing) As Task(Of T)
类型参数
- T
要返回的值的类型。
参数
- reader
- DbDataReader
要从中获取列值的数据读取器。
- name
- String
列的名称。
- cancellationToken
- CancellationToken
用于取消异步操作的可选令牌。
返回
Task<T>
Result 包含指定列的值的任务。
例外
在数据检索期间删除或关闭连接。
- 或 -
在数据检索期间关闭数据读取器。
- 或 -
没有可读取的数据(例如尚未调用第一个 Read(),或调用返回了 false
)。
- 或 -
按顺序模式尝试读取上一步骤中读取的列。
- 或 -
没有正在进行的异步操作。 以顺序模式运行时,这适用于所有 Get_*_ 方法,读取流时也可对其进行调用。
指定的名称不是有效的列名。
数据库返回的值不匹配或不能转换为 T
。
取消令牌已取消。 此异常存储在返回的任务中。
注解
此异步方法只是为了避免在顺序模式下创建读取器时阻塞调用线程。
如果未指定顺序模式,则每次 ReadAsync 完成时,所有列值都应在内存中可用,并且调用方法的同步版本不应阻止调用线程。
此异步方法的默认实现调用其同步对应方法并返回已完成的 Task,这可能会阻止调用线程。 如果传递了已取消的取消令牌,则默认实现还会返回已取消的任务。
支持 异步编程 的数据提供程序应使用异步 I/O 操作替代默认实现。
该方法可用于请求操作之前接受取消标记。 实现可能会忽略该请求。
当返回任务还未完成时, DbDataReader 对象的其他方法和属性不应调用 。