5
Wie kann ich Elemente mit Nhibernate löschen, ohne zuerst alle Objekte im Speicher zu ziehen?Wie zu Massenlöschung mit Nhibernate?
Ist das möglich oder muss ich rohe SQL verwenden?
Wie kann ich Elemente mit Nhibernate löschen, ohne zuerst alle Objekte im Speicher zu ziehen?Wie zu Massenlöschung mit Nhibernate?
Ist das möglich oder muss ich rohe SQL verwenden?
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();
}
}