Ejemplo n.º 1
0
        protected internal virtual Expression VisitRowNumber(RowNumberExpression rowNumber)
        {
            var orderBys = Visit(rowNumber.OrderBy, VisitOrderBy);

            if (orderBys != rowNumber.OrderBy)
            {
                return(new RowNumberExpression(orderBys));
            }
            return(rowNumber);
        }
Ejemplo n.º 2
0
        protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber)
        {
            var orderBys = Visit(rowNumber.OrderBy, o => IsConstant(o.Expression) ? null ! : Visit(o.Expression).Let(e => e == o.Expression ? o : new OrderExpression(o.OrderType, e)));;

            if (orderBys != rowNumber.OrderBy)
            {
                return(new RowNumberExpression(orderBys));
            }
            return(rowNumber);
        }
Ejemplo n.º 3
0
        protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber)
        {
            var orderBys = RemoveDuplicates(Visit(rowNumber.OrderBy, VisitOrderBy));

            if (orderBys != rowNumber.OrderBy)
            {
                return(new RowNumberExpression(orderBys));
            }
            return(rowNumber);
        }
Ejemplo n.º 4
0
 protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber)
 {
     sb.Append("ROW_NUMBER() OVER(ORDER BY ");
     for (int i = 0, n = rowNumber.OrderBy.Count; i < n; i++)
     {
         OrderExpression exp = rowNumber.OrderBy[i];
         if (i > 0)
         {
             sb.Append(", ");
         }
         this.Visit(exp.Expression);
         if (exp.OrderType != OrderType.Ascending)
         {
             sb.Append(" DESC");
         }
     }
     sb.Append(")");
     return(rowNumber);
 }
Ejemplo n.º 5
0
        protected internal override Expression VisitRowNumber(RowNumberExpression rowNumber)
        {
            AppendKeys();

            return(new RowNumberExpression(gatheredOrderings));
        }
Ejemplo n.º 6
0
 protected virtual bool CompareRowNumber(RowNumberExpression a, RowNumberExpression b)
 {
     return(CompareList(a.OrderBy, b.OrderBy, CompareOrder));
 }