NHibernate LinqToHqlGenerator for Oracle 全文索引 'Containing' 关键字

NHibernate LinqToHqlGenerator for Oracle full text index 'Containing' keyword

我在 Nhibernate 中使用了两个不同的数据库,对于 Sql 服务器我解决了阅读 this post

它在 Sql 服务器上运行良好,而 Oracle 有不同的语法:

Contains("a", "b")>0

我不知道如何在这段代码中做到这一点

    public override HqlTreeNode BuildHql(MethodInfo method,
      System.Linq.Expressions.Expression targetObject,
      ReadOnlyCollection<System.Linq.Expressions.Expression> arguments,
      HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)
    {

        HqlExpression[] args = new HqlExpression[2] {
            visitor.Visit(arguments[0]).AsExpression(),
            visitor.Visit(arguments[1]).AsExpression()
        };


        return treeBuilder.BooleanMethodCall("contains", args);
    }

问题是我无法理解如何在表达式后添加 >0。

提前致谢

比我想象的还要简单,用builder这样解决了

public override HqlTreeNode BuildHql(MethodInfo method,
          System.Linq.Expressions.Expression targetObject,
          ReadOnlyCollection<System.Linq.Expressions.Expression> arguments,
          HqlTreeBuilder treeBuilder, IHqlExpressionVisitor visitor)        {           HqlExpression[] args = new HqlExpression[2] {
                visitor.Visit(arguments[0]).AsExpression(),
                visitor.Visit(arguments[1]).AsExpression()          };

            return treeBuilder.GreaterThan(treeBuilder.MethodCall("contains", args), treeBuilder.Constant(0));      }