sql >> Base de Datos >  >> RDS >> Oracle

Oracle.DataAccess.Client.OracleCommand ExecuteReaderAsync

El cliente de Oracle no anula las versiones asíncronas de los métodos. Usan el DbCommand predeterminado implementaciones que llaman a las versiones no asíncronas de los métodos.

Por ejemplo, la implementación de ExecuteNonQueryAsync es:

// 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 puede ver, simplemente llama a ExecuteNonQuery bajo el capó (la sobrecarga sin parámetros de ExecuteNonQueryAsync llama a esta versión del método).