public void NumberExpression() { var ordering1 = new Ordering(Expression.Constant("order1"), OrderingDirection.Asc); var ordering2 = new Ordering(Expression.Constant("order2"), OrderingDirection.Desc); var sqlRowNumberRÉxpression = new SqlRowNumberExpression( new[] { ordering1, ordering2 }); _stageMock .Expect(mock => mock.GenerateTextForOrdering(_commandBuilder, ordering1)) .WhenCalled(mi => ((SqlCommandBuilder)mi.Arguments[0]).Append("order1 ASC")); _stageMock .Expect(mock => mock.GenerateTextForOrdering(_commandBuilder, ordering2)) .WhenCalled(mi => ((SqlCommandBuilder)mi.Arguments[0]).Append("order2 DESC")); _stageMock.Replay(); SqlGeneratingExpressionVisitor.GenerateSql(sqlRowNumberRÉxpression, _commandBuilder, _stageMock); _stageMock.VerifyAllExpectations(); Assert.That(_commandBuilder.GetCommandText(), Is.EqualTo("ROW_NUMBER() OVER (ORDER BY order1 ASC, order2 DESC)")); }
public virtual Expression VisitSqlRowNumberExpression(SqlRowNumberExpression expression) { ArgumentUtility.CheckNotNull("expression", expression); _commandBuilder.Append("ROW_NUMBER() OVER (ORDER BY "); _commandBuilder.AppendSeparated(", ", expression.Orderings, _stage.GenerateTextForOrdering); _commandBuilder.Append(")"); return(expression); }
public void SetUp() { _orderingExpression1 = Expression.Constant("order1"); _orderingExpression2 = Expression.Constant("order2"); _sqlRowNumberExpression = new SqlRowNumberExpression( new[] { new Ordering(_orderingExpression1, OrderingDirection.Asc), new Ordering(_orderingExpression2, OrderingDirection.Desc) }); }
public Expression VisitSqlRowNumber(SqlRowNumberExpression expression) { return(VisitChildrenWithGivenSemantics(expression, SqlExpressionContext.SingleValueRequired)); }