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 回答