我想我知道这个问题的答案可能会是什么,但我想我还是会继续问这个问题。
如果我做这样的事情,似乎在NHibernate中:
IList<Customer> customers = Session.CreateCriteria(typeof(Customer))
.Add(Restrictions.Eq("Name", "Steve")
.List<Customer>();
然后我想删除该客户列表。据我所知,唯一的方法就是这样:
foreach(var customer in customers)
{
Session.Delete(customer);
}
但我想知道的是,如果有任何办法我可以去:
Session.Delete(customers);
并通过一次调用删除整个集合?
答案 0 :(得分:5)
不使用Criteria,但使用HQL很容易:
session.CreateQuery("delete Customer customer where customer in (:customers)")
.SetParameterList("customers", customers.ToArray())
.ExecuteUpdate();
但是你不需要加载它们。你也可以一次性完成:
session.CreateQuery("delete Customer where Name = 'Steve'")
.ExecuteUpdate();