5
¿Cómo puedo eliminar elementos con nhibernate sin antes tirar de todos los objetos en la memoria?Cómo eliminar por lotes con nhibernate?
¿Es esto posible o tengo que usar sql sin procesar?
¿Cómo puedo eliminar elementos con nhibernate sin antes tirar de todos los objetos en la memoria?Cómo eliminar por lotes con nhibernate?
¿Es esto posible o tengo que usar sql sin procesar?
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();
}
}