这个问题的最佳做法是什么?是否有内置的批处理功能?
示例代码:
using (ITransaction transaction = _session.BeginTransaction()) { _session.Delete("FROM myObject o WHERE o.Id = IN(1,2,...99999)"); transaction.Commit(); }
提前致谢.
解决方法
HQL支持IN子句,如果使用setParameterList,您甚至可以传递一个集合.
var idList = new List<int>() { 5,3,6,7 }; _session.CreateQuery("DELETE myObject o WHERE o.Id = IN (:idList)") .SetParameterList("idList",idList) .ExecuteUpdate();