本文介绍了如何删除多个数据库实体与NHibernate?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

什么是这个问题的最好做法是什么?是否有任何配料功能内置?

What is the best practice for this problem? Is there any batching features built-in?

样code:

using (ITransaction transaction = _session.BeginTransaction())
{
   _session.Delete("FROM myObject o WHERE  o.Id = IN(1,2,...99999)");
   transaction.Commit();
}

先谢谢了。

推荐答案

HQL支持IN子句,如果你使用setParameterList你可以在集合中,甚至通过。

HQL supports the IN clause, and if you use setParameterList you can even pass in a collection.

var idList = new List<int>() { 5,3,6,7 };

_session.CreateQuery("DELETE myObject o WHERE o.Id = IN (:idList)")
    .SetParameterList("idList", idList)
    .ExecuteUpdate();

这篇关于如何删除多个数据库实体与NHibernate?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-12 19:34