Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle.DataAccess.Client.OracleCommand ExecuteReaderAsync


O cliente Oracle não substitui as versões assíncronas dos métodos. Eles usam o padrão DbCommand implementnations que chamam as versões não assíncronas dos métodos.

Por exemplo, a implementação de ExecuteNonQueryAsync é:
// System.Data.Common.DbCommand
public virtual Task<int> ExecuteNonQueryAsync(CancellationToken cancellationToken)
{
    if (cancellationToken.IsCancellationRequested)
    {
        return ADP.CreatedTaskWithCancellation<int>();
    }
    CancellationTokenRegistration cancellationTokenRegistration = default(CancellationTokenRegistration);
    if (cancellationToken.CanBeCanceled)
    {
        cancellationTokenRegistration = cancellationToken.Register(new Action(this.CancelIgnoreFailure));
    }
    Task<int> result;
    try
    {
        result = Task.FromResult<int>(this.ExecuteNonQuery());
    }
    catch (Exception ex)
    {
        cancellationTokenRegistration.Dispose();
        result = ADP.CreatedTaskWithException<int>(ex);
    }
    return result;
}

Como você pode ver, ele simplesmente chama ExecuteNonQuery sob o capô (a sobrecarga sem parâmetros de ExecuteNonQueryAsync chama esta versão do método).