Condividi tramite


DataReaderExtensions.GetFieldValueAsync<T> Metodo

Definizione

Ottiene in modo asincrono il valore della colonna specificata come tipo richiesto.

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)

Parametri di tipo

T

Tipo di valore da restituire.

Parametri

reader
DbDataReader

Lettore dati da cui ottenere il valore della colonna.

name
String

Nome della colonna.

cancellationToken
CancellationToken

Token facoltativo per annullare l'operazione asincrona.

Restituisce

Task<T>

Attività per cui Result contiene il valore della colonna specificata.

Eccezioni

La connessione è stata eliminata o chiusa durante il recupero dei dati.

-oppure-

Il lettore dati è stato chiuso durante il recupero dei dati.

-oppure-

Non sono disponibili dati pronti per essere letti (ad esempio, il primo Read() non è stato chiamato o ha restituito false).

-oppure-

Ha tentato di leggere una colonna letta in precedenza in modalità sequenziale.

-oppure-

Operazione asincrona in corso. Si applica a tutti i metodi Get_*_ durante l'esecuzione in modalità sequenziale, in quanto possono essere chiamati durante la lettura di un flusso.

Il nome specificato non è un nome di colonna valido.

Il valore restituito dal database non corrisponde o non è possibile eseguirne il cast a T.

Il token di annullamento è stato annullato. Questa eccezione viene archiviata nell'attività restituita.

Commenti

Questo metodo asincrono è necessario solo per evitare di bloccare il thread chiamante quando viene creato il lettore in modalità sequenziale.

Se la modalità sequenziale non è specificata, tutti i valori di colonna devono diventare disponibili in memoria ogni volta che ReadAsync viene completato e la chiamata alla versione sincrona del metodo non deve bloccare il thread chiamante.

L'implementazione predefinita di questo metodo asincrono richiama la controparte sincrona e restituisce un'attività completata, potenzialmente bloccando il thread chiamante. L'implementazione predefinita restituisce anche un'attività annullata se è stato passato un token di annullamento già annullato.

I provider di dati che supportano la programmazione asincrona devono eseguire l'override dell'inmplementazione predefinita usando operazioni di I/O asincrone.

Questo metodo accetta un token di annullamento che può essere utilizzato per richiedere che l'operazione venga annullata in anticipo. Le implementazioni possono ignorare la richiesta.

Non si devono richiamare altri metodi e proprietà dell'oggetto DbDataReader mentre l'attività restituita non è ancora completata.

Si applica a