Quelle est la meilleure pratique pour ce problème? Y a-t-il des fonctionnalités de traitement par lots intégrées?Comment supprimer plusieurs entités DB avec Nhibernate?
Exemple de code:
using (ITransaction transaction = _session.BeginTransaction())
{
_session.Delete("FROM myObject o WHERE o.Id = IN(1,2,...99999)");
transaction.Commit();
}
Merci à l'avance.
Que faire si l'idList est énorme? Comment feriez-vous en lots autour de lui? ou nhibernate at-il une forme de loterie intégrée? – Newbie
Je devrais configurer un test en utilisant nHibernate profiler [nhprof.com] pour voir ce qui est réellement émis dans la BD, mais si je devais deviner, je dirais que cela ressemblerait explicitement à votre exemple codé en dur. – joshperry
Vous pouvez définir une taille de lot dans votre: 100. Cependant, en fonction de votre HQL, je suppose que c'est juste une requête émise (les lots s'appliqueraient si vous étiez en boucle dans une collection et appeliez Delete sur eux). –
ddango