public List <int> ExecuteNonQuery(bool serial, ExecutionContext executionContext, CancellationToken cancellationToken = new CancellationToken())
        {
            var executor = new AdoNetShardingExecutor <int>();

            executor.OnCommandSqlExecute += DoExecuteNonQuery;
            return(ShardingExecute <int>(executor, serial, executionContext, cancellationToken));
        }
        public List <IStreamDataReader> ExecuteDbDataReader(bool serial, ExecutionContext executionContext,
                                                            CancellationToken cancellationToken = new CancellationToken())
        {
            var executor = new AdoNetShardingExecutor <IStreamDataReader>();

            executor.OnCommandSqlExecute += GetQueryEnumerator;

            return(ShardingExecute <IStreamDataReader>(executor, serial, executionContext, cancellationToken));
        }