Ejemplo n.º 1
0
        private static string GetQuery(QueryExpressions expressions, Dictionary <string, object> queryParameters)
        {
            var queryBuilder = new StringBuilder("SELECT * FROM root r");

            if (expressions.WhereExpressions?.Any() == true)
            {
                queryBuilder.Append(" WHERE ");

                queryBuilder.Append(
                    QueryWhereClauseVisitor.Visit(expressions.WhereExpressions.First(), queryParameters));

                foreach (var whereExpression in expressions.WhereExpressions.Skip(1))
                {
                    queryBuilder.Append(" AND ")
                    .Append(QueryWhereClauseVisitor.Visit(whereExpression, queryParameters));
                }
            }

            if (expressions.GroupByExpression != null)
            {
                queryBuilder.Append(" ORDER BY ");

                queryBuilder.Append(
                    QueryOrderByClauseVisitor.Visit(expressions.GroupByExpression));
            }

            return(queryBuilder.ToString());
        }
Ejemplo n.º 2
0
            public static void CorrectlyHandlesSingleProperty()
            {
                Expression <Func <Sale, decimal> > groupByFunc = x => x.Amount;

                string actual = QueryOrderByClauseVisitor.Visit(groupByFunc);

                Assert.Equal("r.amount", actual);
            }