DataReaderExtensions.GetFieldValueAsync<T> Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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 false
wartość ).
-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.