下面的查询使用了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();
谢谢,
答案 0 :(得分:1)
不,这是不可能的。
HQL批量更新语句在NHibernate堆栈中相对较低级别,并且它们不会遵循过滤器。
答案 1 :(得分:1)
不,原因是过滤器不是域'变形金刚'。他们只是为了修改你想要选择的内容。要执行您想要的操作,您可以在映射中指定WHERE类属性,尽管这不会(正式)支持参数