DataReaderExtensions.GetFieldValueAsync<T> Metoda

Definicja

Asynchronicznie pobiera wartość określonej kolumny jako żądany typ.

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)

Parametry typu

T

Typ wartości do zwrócenia.

Parametry

reader
DbDataReader

Czytnik danych umożliwiający pobranie wartości kolumny z.

name
String

Nazwa kolumny.

cancellationToken
CancellationToken

Opcjonalny token umożliwiający anulowanie operacji asynchronicznej.

Zwraca

Task<T>

Zadanie, którego Result wartość zawiera określoną kolumnę.

Wyjątki

Połączenie zostało porzucone lub zamknięte podczas pobierania danych.

-lub-

Czytnik danych został zamknięty podczas pobierania danych.

-lub-

Nie ma danych gotowych do odczytu (na przykład pierwsza Read() nie została wywołana lub zwróciła falsewartość ).

-lub-

Podjęto próbę odczytania wcześniej odczytanej kolumny w trybie sekwencyjnym.

-lub-

W toku była operacja asynchroniczna. Dotyczy to wszystkich metod Get_*_ podczas uruchamiania w trybie sekwencyjnym, ponieważ można je wywołać podczas odczytywania strumienia.

Określona nazwa nie jest prawidłową nazwą kolumny.

Wartość zwrócona przez bazę danych jest niezgodna lub nie można jej rzutować na T.

Token anulowania został anulowany. Ten wyjątek jest przechowywany w zwracanym zadaniu.

Uwagi

Ta metoda asynchroniczna jest potrzebna tylko w celu uniknięcia blokowania wątku wywołującego po utworzeniu czytnika w trybie sekwencyjnym.

Jeśli tryb sekwencyjny nie jest określony, wszystkie wartości kolumn powinny być dostępne w pamięci za każdym razem, gdy funkcja ReadAsync zostanie ukończona, i wywołanie synchronicznej wersji metody nie powinno blokować wywołującego wątku.

Domyślna implementacja tej metody asynchronicznej wywołuje synchroniczny odpowiednik i zwraca ukończone zadanie, co potencjalnie blokuje wywołujący wątek. Domyślna implementacja zwraca również anulowane zadanie, jeśli przekazano już anulowany token anulowania.

Dostawcy danych, którzy obsługują programowanie asynchroniczne , powinni zastąpić domyślną inmplementację przy użyciu asynchronicznych operacji we/wy.

Ta metoda akceptuje token anulowania, który może służyć do żądania wcześniejszego anulowania operacji. Implementacje mogą ignorować to żądanie.

Inne metody i właściwości obiektu DbDataReader nie powinny być wywoływane, gdy zwrócone zadanie nie zostało jeszcze ukończone.

Dotyczy