Exemplo n.º 1
0
        public void Add(QueryExpression tail)
        {
            if (tail == null)
            {
                throw new ArgumentNullException("tail");
            }

            if (m_next == null)
            {
                m_next = tail;
            }
            else
            {
                m_next.Add(tail);
            }
        }
Exemplo n.º 2
0
        public INode Clone()
        {
            QueryExpression queryExpression = new QueryExpression();

            queryExpression.Distinct = m_distinct;
            queryExpression.All      = m_all;
            queryExpression.SetLimit(m_limitFormat, m_limit);

            if (m_selectItems != null)
            {
                queryExpression.SelectItems = (AliasedItem)(m_selectItems.Clone());
            }

            if (m_from != null)
            {
                queryExpression.From = (AliasedItem)(m_from.Clone());
            }

            if (m_where != null)
            {
                queryExpression.Where = (IExpression)(m_where.Clone());
            }

            if (m_groupBy != null)
            {
                queryExpression.GroupBy = (GroupByClause)(m_groupBy.Clone());
            }

            if (m_orderBy != null)
            {
                queryExpression.OrderBy = (OrderExpression)(m_orderBy.Clone());
            }

            if (m_next != null)
            {
                queryExpression.Add((QueryExpression)(m_next.Clone()));
            }

            return(queryExpression);
        }