RdbmsProvider should provide the following methods:
ExecuteNonQueryAsync(IDbAsyncCommand command, CancellationToken cancellationToken)
ExecuteReaderAsync(IDbAsyncCommand command, CancellationToken cancellationToken)
ExecuteScalarAsync(IDbAsyncCommand command, CancellationToken cancellationToken)
Introduce new interface IDbAsyncCommand that emulates IDbCommand with async operations.
Note: it is not sensible to use DbCommand instead of IDbCommand in the API due to the abstract base type's resctrictions compared to the interface and it's API compatibility with the exisiting design.