public static string GetHqlExpression(Expression linqExpression, ParameterAggregator parameterAggregator)
        {
            var visitor = new HqlGeneratorExpressionTreeVisitor(parameterAggregator);

            visitor.VisitExpression(linqExpression);
            return(visitor.GetHqlExpression());
        }
        public static string GetHqlExpression(Expression linqExpression, ParameterAggregator parameterAggregator)
        {
            // 传递需要保存解析参数的容器
            var visitor = new HqlGeneratorExpressionTreeVisitor(parameterAggregator);

            // 执行 Visitor
            visitor.Visit(linqExpression);
            // 扩展方法
            // 通过 Visitor 过程中保存的临时变量,将其转换成 Hql
            return(visitor.GetHqlExpression());
        }
Пример #3
0
        // 每一个 QueryModel 的执行
        // 都通过自定义的 HqlGeneratorExpressionTreeVisitor 来转换 Hql
        private string GetHqlExpression(Expression expression)
        {
            // Hql 语句解析器
            // _parameterAggregator 在解析的过程中进行填充

            var tp = HqlGeneratorExpressionTreeVisitor.GetHqlExpression(expression, _parameterAggregator);

            Console.WriteLine($"$GetHqlExpression -> {tp}");


            return(tp);
        }
Пример #4
0
 private string GetHqlExpression(Expression expression)
 {
     return(HqlGeneratorExpressionTreeVisitor.GetHqlExpression(expression, _parameterAggregator));
 }