示例#1
0
        public OQuery Attach(OQuery query)
        {
            //if (query._letMap != null && q)

            //if (query._top != _top)
            //{
            //    _top = query._top;
            //}

            //if (query._skip != _skip)
            //{
            //    _skip = query._skip;
            //}

            if (query._orderByClauses.Any())
            {
                query._orderByClauses.ForEach(c => _orderByClauses.Add(c));
            }

            if (query._whereClauses.Any())
            {
                query._whereClauses.ForEach(c => _whereClauses.Add(c));
            }

            //Let's
            //
            if (query._letMap.Any())
            {
                foreach (var let in query._letMap)
                {
                    _letMap[let.Key] = let.Value;
                }
            }

            //TODO
            if (query._select != _select)
            {
                query._select = _select;
            }

            if (query._expandClauses.Any())
            {
                query._expandClauses.ForEach(c => _expandClauses.Add(c));
            }
            //LET, SELECT
            return(this);
        }
示例#2
0
文件: oQuery.cs 项目: FordSoft/CMS
        public OQuery Attach(OQuery query)
        {
            //if (query._letMap != null && q)

            //if (query._top != _top)
            //{
            //    _top = query._top;
            //}

            //if (query._skip != _skip)
            //{
            //    _skip = query._skip;
            //}

            if (query._orderByClauses.Any())
            {
                query._orderByClauses.ForEach(c => _orderByClauses.Add(c));
            }

            if (query._whereClauses.Any())
            {
                query._whereClauses.ForEach(c => _whereClauses.Add(c));
            }

            //Let's
            //
            if (query._letMap.Any())
            {
                foreach (var let in query._letMap)
                {
                    _letMap[let.Key] = let.Value;
                }
            }

            //TODO
            if (query._select != _select)
            {
                query._select = _select;
            }

            if (query._expandClauses.Any())
            {
                query._expandClauses.ForEach(c => _expandClauses.Add(c));
            }
            //LET, SELECT
            return this;
        }
示例#3
0
        public OQuery Attach(OQuery src, IExpression expression)
        {
            if (expression is TakeExpression && expression.OQueryExpression != null)
            {
                src.Take(expression.OQueryExpression._top);
            }
            else if (expression is SkipExpression && expression.OQueryExpression != null)
            {
                src.Skip(expression.OQueryExpression._skip);
            }
            else if (expression is OrderExpression)
            {
                var orderExpression = (OrderExpression)expression;
                if (orderExpression.Descending)
                    src.OrderbyDesc(orderExpression.FieldName);
                else
                    src.Orderby(orderExpression.FieldName);
            }
            else if (expression is AndAlsoExpression)
            {
                var andAlsoExpression = (AndAlsoExpression) expression;
                if (andAlsoExpression.Left != null)
                    Attach(src, andAlsoExpression.Left);

                if (andAlsoExpression.Right != null)
                    Attach(src, andAlsoExpression.Right);
            }
            else if (expression is OrElseExpression)
            {
                var orElseExpression = (OrElseExpression) expression;
                if (orElseExpression.Left != null)
                    Attach(src, orElseExpression.Left);

                if (orElseExpression.Right != null)
                    Attach(src, orElseExpression.Right);

            }

            if (expression.OQueryExpression != null)
            {
                src.Attach(expression.OQueryExpression);
            }

            if (expression is Expression)
            {
                var exp = (Expression)expression;
                if (exp.InnerExpression != null)
                    return Attach(src, exp.InnerExpression);
            }

            return src;
        }