5
Comment est-ce que je peux supprimer des articles avec nhibernate sans d'abord tirer tous les objets en mémoire? Est-ce possible ou dois-je utiliser raw SQL?Comment supprimer en bloc avec nhibernate?
Comment est-ce que je peux supprimer des articles avec nhibernate sans d'abord tirer tous les objets en mémoire? Est-ce possible ou dois-je utiliser raw SQL?Comment supprimer en bloc avec nhibernate?
Utilisez la méthode ExecuteUpdate. Le code ci-dessous va valider la suppression en bloc par lots. Cela fonctionne dans NHibernate 2.1.0. (Je ne suis pas sûr des versions précédentes)
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();
}
}