2010-02-18 68 views

回答

7

使用ExecuteUpdate方法。下面的代碼將批量批量刪除。這在NHibernate 2.1.0中起作用。 (不知道以前的版本)

 foreach (List<int> batch in GetBatches(records, _batchSize)) 
     { 
      using (ITransaction transaction = _session.BeginTransaction()) 
      { 
       _session.CreateQuery(String.Format("DELETE FROM {0} WHERE Id IN (:idsList)", _domainObject.Name)) 
         .SetParameterList("idsList", batch.ToArray()) 
         .ExecuteUpdate(); 

       transaction.Commit(); 
      } 
     }