/// <summary> /// Updates the row number. /// </summary> /// <param name="rowNumber">The row number.</param> /// <param name="orderBy">The order by.</param> /// <returns></returns> protected RowNumberExpression UpdateRowNumber(RowNumberExpression rowNumber, IEnumerable <OrderExpression> orderBy) { if (orderBy != rowNumber.OrderBy) { return(new RowNumberExpression(orderBy)); } return(rowNumber); }
/// <summary> /// Compares the row number. /// </summary> /// <param name="a">A.</param> /// <param name="b">The b.</param> /// <returns></returns> protected virtual bool CompareRowNumber(RowNumberExpression a, RowNumberExpression b) { return(this.CompareOrderList(a.OrderBy, b.OrderBy)); }
/// <summary> /// Visits the row number. /// </summary> /// <param name="rowNumber">The row number.</param> /// <returns></returns> protected virtual Expression VisitRowNumber(RowNumberExpression rowNumber) { var orderby = this.VisitOrderBy(rowNumber.OrderBy); return(this.UpdateRowNumber(rowNumber, orderby)); }