Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle.DataAccess.Client.OracleCommand ExecuteReaderAsync

Der Oracle-Client überschreibt die asynchronen Versionen der Methoden nicht. Sie verwenden den Standard DbCommand Implementierungen, die die nicht-asynchronen Versionen der Methoden aufrufen.

Beispielsweise die Implementierung von ExecuteNonQueryAsync ist:

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

Wie Sie sehen können, ruft es einfach ExecuteNonQuery auf unter der Haube (die No-Parameter-Überladung von ExecuteNonQueryAsync ruft diese Version der Methode auf).