/// <summary>
    /// Executes the command, returning the number of rows affected.
    /// </summary>
    /// <seealso cref="Execute" />
    public async ValueTask <int> ExecuteAsync(CancellationToken cancellationToken = default)
    {
        var command = await CreateAsync(cancellationToken).ConfigureAwait(false);

        await using var commandScope = new AsyncScope(command).ConfigureAwait(false);
        return(await Connector.ProviderMethods.ExecuteNonQueryAsync(CachedCommand.Unwrap(command), cancellationToken).ConfigureAwait(false));
    }
 private async ValueTask DisposeCachedCommandsAsync()
 {
     if (m_commandCache != null)
     {
         foreach (var command in m_commandCache.GetCommands())
         {
             await m_providerMethods.DisposeCommandAsync(CachedCommand.Unwrap(command)).ConfigureAwait(false);
         }
     }
 }
 private void DisposeCachedCommands()
 {
     if (m_commandCache != null)
     {
         foreach (var command in m_commandCache.GetCommands())
         {
             CachedCommand.Unwrap(command).Dispose();
         }
     }
 }