Пример #1
0
 public virtual void Visit(SelectNode node)
 {
     foreach (var field in node.Fields)
     {
         field.Accept(this);
     }
     node.Accept(Visitor);
 }
 public void Visit(SelectNode node)
 {
     SetQueryPart(QueryPart.Select);
     foreach (var field in node.Fields)
     {
         field.Accept(this);
     }
     node.Accept(_visitor);
 }
        public void Visit(SelectNode node)
        {
            SetQueryPart(QueryPart.Select);

            if (_visitor.CurrentQuery != null && _visitor.CurrentQuery.HasFromClosure())
            {
                Expression sequence = _visitor.Nodes.Peek();
                this._visitor.ScopedParamters.Push(Expression.Parameter(typeof(int), "item_i"));
                this._visitor.ScopedParamters.Push(Expression.Parameter(sequence.GetElementType(), "item_" + sequence.GetElementType().Name));
            }

            node.Top?.Accept(this);
            foreach (var field in node.Fields)
                field.Accept(this);
            node.Accept(_visitor);
        }