Как удалить множество объектов по списку идентификаторов? - PullRequest
2 голосов
/ 09 января 2012

Как я могу сделать что-то подобное

Session
.CreateQuery("delete from People where People.Id in (:idList)")
.SetParameter("idList", idList)
.ExecuteUpdate()

, но без HQL?

Ответы [ 3 ]

1 голос
/ 09 января 2012

Вы можете сделать это:

foreach(var item in idList)
{
    Session.Delete(Session.Load<People>(item));
}

и повысить производительность этого установленного размера пакета до 20, например, в конфигурациях:

<property name="adonet.batch_size">20</property>

это поведение существует по умолчанию в Nhibernate 3.2

0 голосов
/ 09 января 2012

Вот пример здесь , который может сделать то, что вам нужно. Это одна из перегрузок сессии. Удалить

0 голосов
/ 09 января 2012

Насколько я знаю, нет синтаксиса Fluent Nhibernate для удаления сущностей. Я также использовал HQL (или даже SQL), когда хотел удалить.

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