Was ist die beste Vorgehensweise für dieses Problem? Gibt es Batching-Funktionen?Wie können mehrere db-Entitäten mit Nhibernate gelöscht werden?
Beispielcode:
using (ITransaction transaction = _session.BeginTransaction())
{
_session.Delete("FROM myObject o WHERE o.Id = IN(1,2,...99999)");
transaction.Commit();
}
Vielen Dank im Voraus.
Was ist, wenn die idList riesig ist? Wie würdest du das umgehen? oder hat nhibernate irgendeine Form von eingebauter Dosierung? – Newbie
Ich müsste einen Test mit nHibernate Profiler [nhprof.com] einrichten, um zu sehen, was tatsächlich an die DB gesendet wird, aber wenn ich raten müsste, würde ich sagen, dass es explizit wie Ihr hartcodiertes Beispiel aussehen würde. – joshperry
Sie können eine Stapelgröße in Ihrer festlegen: 100 . Basierend auf Ihrer HQL würde ich jedoch vermuten, dass nur eine einzige Abfrage ausgegeben wird (Stapel würden angewendet, wenn Sie eine Sammlung durchlaufen und auf ihnen Löschen aufrufen würden). –
ddango