2010-06-23 28 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堆栈中是相对较低的级别,它们不会遵守过滤器。

相关问题