示例#1
0
        public void ItShouldBePossibleToOrderByMultipleColumns()
        {
            var expr = Select.Column <Person>(p => p.Name)
                       .Column <Person>(p => Sql.Sum(p.Age), Over.OrderBy <Person>(p => p.Age, Direction.Ascending, NullsOrdering.NullsLast).ThenBy <Person>(p => p.Name, Direction.Descending))
                       .From <Person>();
            var result = expr.ToSqlExpression();

            Assert.That(result, Is.EqualTo(TokenGeneration_SelectPartitionTests_Results.orderByMultipleColumnsExpression));
        }
示例#2
0
        public void ItShouldBePossibleToOrderByAColumn()
        {
            var expr = Select.Column <Person>(p => p.Name)
                       .Column <Person>(p => Sql.Sum(p.Age), Over.OrderBy <Person>(p => p.Age))
                       .From <Person>();
            var result = expr.ToSqlExpression();

            Assert.That(result, Is.EqualTo(TokenGeneration_SelectPartitionTests_Results.orderByColumnExpression));
        }
示例#3
0
        public void ItShouldBePossibleToDoPagingWithACommonTableExpression()
        {
            // To be honest, this case should be covered by the other test cases so this test case is a bit redundant.
            // However, using common table expressions for paging is a quite common technique and it's good to know for sure that it works as expected, so
            // let's do some bad practice testing and test something that's already covered by other tests!

            var expr =
                With.Table <PersonLitePagingResult>(
                    Select.Column <Person>(p => Sql.RowNumber(), Over.OrderBy <Person>(p => p.Age))
                    .Column <Person>(p => new { p.Name, p.Age })
                    .From <Person>()
                    ).Query(
                    Select.Column <PersonLitePagingResult>(p => new { p.Name, p.Age })
                    .From <PersonLitePagingResult>()
                    .Where <PersonLitePagingResult>(p => p.RowNumber >= 10 && p.RowNumber < 20)
                    );
            var result = expr.ToSqlExpression();

            Assert.That(result, Is.EqualTo(TokenGeneration_CommonTableExpressions_Results.commonPagingExpression));
        }