2010-06-23 60 views
0

下面的查詢使用了ExecuteUpdate。我想說的方法來尊重會話過濾器。這可能嗎?是否有可能將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(); 

感謝,

回答

1

不,原因是過濾器不是域'變形金剛'。他們只是爲了修改你想要選擇的內容。要做你想做的事,你可以在你的映射中指定WHERE類的屬性,雖然這並不(正式)支持參數

1

不,這是不可能的。

HQL批處理更新語句在NHibernate堆棧中是相對較低的級別,它們不會遵守過濾器。

相關問題