Поделиться через


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, а вызов синхронной версии метода не должен блокировать вызывающий поток.

Реализация этого асинхронного метода по умолчанию вызывает его синхронный аналог и возвращает завершенную задачу, потенциально блокируя вызывающий поток. Реализация по умолчанию также возвращает отмененную задачу, если передан уже отмененный маркер отмены.

Поставщики данных, поддерживающие асинхронное программирование , должны переопределить неуклиментацию по умолчанию с помощью асинхронных операций ввода-вывода.

Этот метод принимает токен отмены, который может использоваться для запроса ранней отмены операции. Реализации могут игнорировать данный запрос.

Другие методы и свойства объекта DbDataReader не должны вызываться, когда возвращаемая задача еще не завершена.

Применяется к