私のシナリオは次のとおりです。次のフォームを実行するベース NHibernate クエリがあります ( DetachedCriteria を使用してコーディングしましたが、ここでは SQL 構文を使用して説明します)。
SELECT * FROM Items I INNER JOIN SubItems S on S.FK = I.Key
この結合の結果を表示するユーザー インターフェイスでは、ユーザーは追加の条件を指定できます。次のように言います。
I.SomeField = 'UserValue'.
ここで、最終的なロード コマンドを次のようにする必要があります。
SELECT * FROM Items I INNER JOIN SubItems S on S.FK = I.Key
WHERE I.SomeField = 'UserValue'
私の問題は次のとおりです。クエリの「静的」側面(トップ結合)で DetachedCriteria を作成し、UI がクエリの「動的」コンポーネントで DetachedCriteria を作成します。この 2 つを組み合わせて、NHibernate セッションで実行できる最終的なクエリにする必要があります。
DefaultCriteria.Add() は ICriterion を取ります (これは Expression クラスを使用して作成されます。また、問題の解決策となる可能性のある、私が知らない他のクラスも使用できます)。
誰かが私がやりたいことをする方法を知っていますか?