Compartilhar via


DataReaderExtensions.GetFieldValueAsync<T> Método

Definição

Obtém de forma assíncrona o valor da coluna especificada como um tipo solicitado.

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)

Parâmetros de tipo

T

O tipo do valor a ser retornado.

Parâmetros

reader
DbDataReader

O leitor de dados do qual obter o valor da coluna.

name
String

O nome da coluna.

cancellationToken
CancellationToken

Um token opcional para cancelar a operação assíncrona.

Retornos

Task<T>

Uma tarefa cujo Result contém o valor da coluna especificada.

Exceções

A conexão caiu ou foi fechada durante a recuperação de dados.

- ou -

O leitor de dados foi fechado durante a recuperação de dados.

- ou -

Não há dados prontos para serem lidos (por exemplo, o primeiro Read() não foi chamado ou retornou false).

- ou -

Tentativa de ler uma coluna lida anteriormente no modo sequencial.

- ou -

Havia uma operação assíncrona em andamento. Isso se aplica a todos os métodos Get_*_ executados no modo sequencial, pois eles podem ser chamados durante a leitura de um fluxo.

O nome especificado não é um nome de coluna válido.

O valor retornado pelo banco de dados não corresponde ou não pode ser convertido em T.

O token de cancelamento foi cancelado. Essa exceção é armazenada na tarefa retornada.

Comentários

Esse método assíncrono só é necessário para evitar o bloqueio do thread de chamada quando o leitor é criado no modo sequencial.

Se o modo sequencial não for especificado, todos os valores de coluna deverão ficar disponíveis na memória sempre que ReadAsync for concluído e chamar a versão síncrona do método não deve bloquear o thread de chamada.

A implementação padrão desse método assíncrono invoca sua contraparte síncrona e retorna uma Tarefa concluída, potencialmente bloqueando o thread de chamada. A implementação padrão também retornará uma tarefa cancelada se for aprovada um token de cancelamento já cancelado.

Os provedores de dados que dão suporte à programação assíncrona devem substituir a inmpleção padrão usando operações de E/S assíncronas.

Esse método aceita um token de cancelamento que pode ser usado para solicitar a operação a ser cancelada no início. As implementações podem ignorar essa solicitação.

Outros métodos e propriedades do objeto DbDataReader não devem ser chamados enquanto a Tarefa retornada ainda não tiver sido concluída.

Aplica-se a