public override async Task <IDataReaderAsync> ExecuteReaderAsync(CancellationToken cancellationToken)
            {
                if (_dataContext._batchCounter > 0)
                {
                    throw new LinqException("Incompatible batch operation.");
                }

                SetCommand(true);

                var queryContext = Query.Queries[QueryNumber];

                _client = _dataContext.GetClient();

                var q   = _dataContext.GetSqlOptimizer().OptimizeStatement(queryContext.Statement, _dataContext.MappingSchema);
                var ret = await _client.ExecuteReaderAsync(
                    _dataContext.Configuration,
                    LinqServiceSerializer.Serialize(
                        q,
                        q.IsParameterDependent ? q.Parameters.ToArray() : queryContext.GetParameters(),
                        QueryHints));

                var result = LinqServiceSerializer.DeserializeResult(ret);
                var reader = new ServiceModelDataReader(_dataContext.MappingSchema, result);

                return(new DataReaderAsync(reader));
            }
            public override async Task <IDataReaderAsync> ExecuteReaderAsync(CancellationToken cancellationToken)
            {
                if (_dataContext._batchCounter > 0)
                {
                    throw new LinqException("Incompatible batch operation.");
                }

                SetCommand(true);

                var queryContext = Query.Queries[QueryNumber];

                _client = _dataContext.GetClient();

                var q   = queryContext.SelectQuery.ProcessParameters(_dataContext.MappingSchema);
                var ret = await _client.ExecuteReaderAsync(
                    _dataContext.Configuration,
                    LinqServiceSerializer.Serialize(
                        q,
                        q.IsParameterDependent ? q.Parameters.ToArray() : queryContext.GetParameters(),
                        QueryHints));

                return(new DataReaderAsync(_dataContext, ret, SkipAction, TakeAction));
            }