是否可以将ExecuteUpdate设置为尊重会话过滤器?

时间:2010-06-23 22:19:34

标签: c# sql nhibernate fluent

下面的查询使用了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();

谢谢,

2 个答案:

答案 0 :(得分:1)

不,这是不可能的。

HQL批量更新语句在NHibernate堆栈中相对较低级别,并且它们不会遵循过滤器。

答案 1 :(得分:1)

不,原因是过滤器不是域'变形金刚'。他们只是为了修改你想要选择的内容。要执行您想要的操作,您可以在映射中指定WHERE类属性,尽管这不会(正式)支持参数