2010-02-18 18 views

Respuesta

7

Utilice el método ExecuteUpdate. El siguiente código confirmará la eliminación masiva en lotes. Esto funciona en NHibernate 2.1.0. (No estoy seguro acerca de las versiones anteriores)

 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(); 
      } 
     } 
Cuestiones relacionadas