我们有一个 .NET 应用程序,它主要基于 NHibernate 驱动的数据访问层,使用 Criteria 和 QueryOver API 来查询 SQL Server 2008 数据库。要求是引入一些基于本机 Microsoft SQL Server 全文功能和排名的查询过滤器。
将其转换为 SQL,我们有类似的东西。
SELECT * FROM entities
INNER JOIN FREETEXTTABLE(entities, ft_column, "some ft query") ft_tbl
ON entities.Id = ft_tbl.[KEY]
ORDER BY ft_tbl.[RANK] DESC
我强调我们需要使用 FREETEXT表函数,而不是 FREETEXT 标量。
我们不能使用子查询标准,因为我们需要对按排名排序的结果进行分页。
现在,我如何扩展 NHibernate 以在 Criteria 和 QueryOver API 中引入对这种自定义连接的支持?
我已经深入研究了 NHibernate 资源,找到了最好的扩展点,就像过去所做的那样,但这次我没有成功,所以我求助于 NHibernate 专家。
先感谢您。