public override async Task<object> ExecuteScalarAsync(CancellationToken cancellationToken) {
cancellationToken.ThrowIfCancellationRequested();
cancellationToken.Register(Cancel);
object result = null;
using(DbDataReader dbDataReader = await ExecuteDbDataReaderAsync(CommandBehavior.Default, cancellationToken).ConfigureAwait(false)) {
if(await dbDataReader.ReadAsync(cancellationToken).ConfigureAwait(false))
if(dbDataReader.FieldCount > 0)
result = dbDataReader.GetValue(0);
}
return result;
}