Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle.DataAccess.Client.OracleCommand ExecuteReaderAsync

Le client Oracle ne remplace pas les versions asynchrones des méthodes. Ils utilisent la valeur par défaut DbCommand les implémentations qui appellent les versions non asynchrones des méthodes.

Par exemple, l'implémentation de ExecuteNonQueryAsync est :

// 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;
}

Comme vous pouvez le voir, il appelle simplement ExecuteNonQuery sous le capot (la surcharge sans paramètre de ExecuteNonQueryAsync appelle cette version de la méthode).