Im TestFixtureTearDown-Teil eines NUnit-Tests versuche ich einige Test-Entities zu löschen, die im TestFixtureSetUp-Teil erstellt wurden. Ich verwende den folgenden CodeNHibernate löscht Entity nicht
sessionFactory = NHibernateHelper.CreateSessionFactory(cssc["DefaultTestConnectionString"].ConnectionString);
uow = new NHibernateUnitOfWork(sessionFactory);
var g = reposGebruiker.GetByName(gebruiker.GebruikerNaam);
reposGebruiker.Delete(g);
var k = reposKlant.GetByName(klant.Naam);
reposKlant.Delete(k);
// Commit changes to persistant storage
uow.Commit();
jedoch nach dem Commit, die zwei Einheiten waren noch in der Datenbank. Nach der Suche auf mich auf this page auf SO kam und so habe ich:
uow.Session.Flush();
jedoch nach wie vor die Einheiten in der DB bleiben. Hat jemand eine Idee, warum das so ist?
Schwer zu sagen. Haben "g" und "k" einen Wert (ich habe vergessen, was NHibernate tut, wenn er versucht, null zu löschen)? Haben sie tatsächlich den Wert, den Sie erwarten? IIRC, Flush() leert nur Anweisungen und wird vor einem Commit automatisch von Commit() aufgerufen. –