public override HqlTreeNode BuildHql(MethodInfo method, Expression targetObject, ReadOnlyCollection<Expression> arguments, HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor) { /* HqlDot hqlDot = (HqlDot)visitor.Visit(arguments[0]).AsExpression(); List<HqlTreeNode> hqlTreeNodes = hqlDot.Children.ToList(); FieldInfo fieldInfo = typeof(HqlTreeNode).GetField("_node", BindingFlags.NonPublic | BindingFlags.Instance); HqlIdent node1 = (HqlIdent)hqlTreeNodes[0]; IASTNode tableNode = (IASTNode)fieldInfo.GetValue(node1); string tableText = tableNode.Text; HqlIdent node2 = (HqlIdent)hqlTreeNodes[1]; IASTNode columnNode = (IASTNode)fieldInfo.GetValue(node2); string columnText = columnNode.Text; string format = string.Format("{0}.{1} (+)", tableText, columnText); //return treeBuilder.AnyValueConstant(format); return treeBuilder.AnyValueConstant("customer1_.ID (+)"); */ HqlAnyValueConstant expression0 = treeBuilder.AnyValueConstant("+"); HqlExpression expression1 = visitor.Visit(arguments[0]).AsExpression(); List<HqlExpression> expressions = new List<HqlExpression>(); expressions.Add(expression0); expressions.Add(expression1); return treeBuilder.BooleanMethodCall("", expressions); //treeBuilder.Equality(); //HqlMethodCall leftSign = treeBuilder.MethodCall("", treeBuilder.Plus()); /* return expression2; HqlDot dot = (HqlDot) expression2; //return treeBuilder.AnyValueConstant(" ", expression1, expression2); return expression1; /* return expression2; */ //return leftSign; //return treeBuilder.Space(leftSign, ); }