Criteria API と QueryOver API の両方を使用して SQL Server 2008 データベースにクエリを実行する NHibernate 主導のデータ アクセス レイヤーに大きく基づいた .NET アプリケーションがあります。要件は、ランク付けを備えたネイティブの 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 の専門家に相談します。
前もって感謝します。