DataReaderExtensions.GetFieldValueAsync<T> 方法

定义

异步获取指定列的值作为请求的类型。

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 对象的其他方法和属性不应调用 。

适用于