如何通过id列表删除实体集?

时间:2012-01-09 11:32:32

标签: .net nhibernate orm

我该怎么做呢?

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

但没有HQL?

3 个答案:

答案 0 :(得分:1)

你可以这样做:

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

并在配置中将此设置批量大小的性能提高到20:

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

此行为默认存在于Nhibernate 3.2

答案 1 :(得分:0)

据我所知,没有用于删除实体的Fluent Nhibernate语法。当我想删除时,我也使用了HQL(甚至是SQL)。

答案 2 :(得分:0)

有一个示例here可能会满足您的需求。它是session.Delete

的重载之一