# System.Data.Common ``` diff namespace System.Data.Common { - public abstract class DbCommand : Component, IDbCommand, IDisposable { + public abstract class DbCommand : Component, IAsyncDisposable, IDbCommand, IDisposable { + public virtual ValueTask DisposeAsync(); + public virtual Task PrepareAsync(CancellationToken cancellationToken = default(CancellationToken)); } - public abstract class DbConnection : Component, IDbConnection, IDisposable { + public abstract class DbConnection : Component, IAsyncDisposable, IDbConnection, IDisposable { + protected virtual ValueTask BeginDbTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken); + public ValueTask BeginTransactionAsync(IsolationLevel isolationLevel, CancellationToken cancellationToken = default(CancellationToken)); + public ValueTask BeginTransactionAsync(CancellationToken cancellationToken = default(CancellationToken)); + public virtual Task ChangeDatabaseAsync(string databaseName, CancellationToken cancellationToken = default(CancellationToken)); + public virtual Task CloseAsync(); + public virtual ValueTask DisposeAsync(); } - public abstract class DbDataReader : MarshalByRefObject, IDataReader, IDataRecord, IDisposable, IEnumerable { + public abstract class DbDataReader : MarshalByRefObject, IAsyncDisposable, IDataReader, IDataRecord, IDisposable, IEnumerable { + public virtual Task CloseAsync(); + public virtual ValueTask DisposeAsync(); } public abstract class DbProviderFactory { + public virtual bool CanCreateCommandBuilder { get; } + public virtual bool CanCreateDataAdapter { get; } } - public abstract class DbTransaction : MarshalByRefObject, IDbTransaction, IDisposable { + public abstract class DbTransaction : MarshalByRefObject, IAsyncDisposable, IDbTransaction, IDisposable { + public virtual Task CommitAsync(CancellationToken cancellationToken = default(CancellationToken)); + public virtual ValueTask DisposeAsync(); + public virtual Task RollbackAsync(CancellationToken cancellationToken = default(CancellationToken)); } } ```