SqlRowNumberExpression represents the Sql ROW_NUMBER() function.
Inheritance: Remotion.Linq.Clauses.Expressions.ExtensionExpression
 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 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 Expression VisitSqlRowNumberExpression (SqlRowNumberExpression expression)
 {
   return VisitChildrenWithGivenSemantics (expression, SqlExpressionContext.SingleValueRequired);
 }
    public void VisitSqlRowNumberExpression ()
    {
      var expression = new SqlRowNumberExpression (new[] { new Ordering (Expression.Constant (true), OrderingDirection.Asc) });
      var expectedResult =
          new SqlRowNumberExpression (new[] { new Ordering (new SqlConvertedBooleanExpression (Expression.Constant (1)), OrderingDirection.Asc) });

      var result = _predicateRequiredVisitor.VisitSqlRowNumberExpression (expression);

      SqlExpressionTreeComparer.CheckAreEqualTrees (expectedResult.Orderings[0].Expression, ((SqlRowNumberExpression) result).Orderings[0].Expression);
    }