Можно ли установить ExecuteUpdate для соблюдения фильтров сеанса? - PullRequest
0 голосов
/ 24 июня 2010

В приведенном ниже запросе используется 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 ]

1 голос
/ 24 июня 2010

Нет, и причина в том, что фильтры не являются «преобразователями» домена. Они существуют только для того, чтобы изменить то, что вы хотите выбрать. Чтобы сделать то, что вы хотите, вы можете указать атрибут класса WHERE в вашем отображении, хотя это (официально) не поддерживает параметры

1 голос
/ 24 июня 2010

Нет, это невозможно.

Операторы пакетного обновления HQL являются относительно низкоуровневыми в стеке NHibernate и не будут учитывать фильтры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...