親愛なるコミュニティの皆さん、ご想像のとおり、1 つ質問があります。そう。テーブル値の SQL 関数の評価に基づいて、NHibernate にクエリの結果をフィルター処理してもらいたいです。NHibernate によって生成される可能性のある SQL クエリは、次のようになります。
SELECT
[whatever]
FROM
[whatever]
INNER JOIN dbo.FnMyTableValuedFunction() as MyAlias ON
[whatever].FirstDesiredKey = MyAlias.FirstDesiredKey
AND
[whatever].SecondDesiredKey = MyAlias.SecondDesiredKey
または、次のように書くこともできます。
SELECT
[whatever]
FROM
[whatever]
WHERE
EXISTS(
SELECT
1
FROM
dbo.FnMyTableValuedFunction() AS MyAlias
WHERE
[whatever].FirstDesiredKey = MyAlias.FirstDesiredKey
AND
[whatever].SecondDesiredKey = MyAlias.SecondDesiredKey
)
このようなクエリは、Criteria API を使用して生成したいと考えています。私の知る限り、NHibernate に何をどのように参加させるべきかを伝える方法はありません。したがって、存在する可能性のある 1 つの解決策は 2 番目の解決策です。
残念ながら、テーブル値関数を相関サブクエリのクエリ ソースとして使用する方法を見つけることができなかったのは幸運でした。それを手伝ってくれませんか?