0

以下のクエリは、ExecuteUpdateを利用しています。上記のメソッドがセッションフィルターを尊重するようにしたい。これは可能ですか?

//This line seems to make no effect.
_session.EnableFilter(FilterName).SetParameter(FilterParam, Value);


_session.CreateQuery(String.Format("DELETE  FROM {0} WHERE Id IN (:idList)", object.Name))
                        .SetParameterList("idList", arrayOfIds)
                        .ExecuteUpdate();

ありがとう、

4

2 に答える 2

1

いいえ、できません。

HQLバッチ更新ステートメントはNHibernateスタックでは比較的低レベルであり、フィルターを尊重しません。

于 2010-06-23T23:18:02.880 に答える
1

いいえ、その理由は、フィルターがドメインの「トランスフォーマー」ではないためです。それらはあなたが選択したいものを変更するためだけにあります。あなたが望むことをするために、あなたはあなたのマッピングでWHEREクラス属性を指定することができますが、これは(公式に)パラメータをサポートしていません

于 2010-06-24T08:48:44.377 に答える