2010-02-18 8 views

Antwort

7

Verwenden Sie die ExecuteUpdate-Methode. Der folgende Code wird eine Massenlöschung in Stapeln durchführen. Dies funktioniert in NHibernate 2.1.0. (Nicht sicher über frühere Versionen)

 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(); 
      } 
     } 
Verwandte Themen