В TestFixtureTearDown-части теста NUnit я пытаюсь удалить некоторые тестовые объекты, созданные в части TestFixtureSetUp. Я использую следующий код:NHibernate не удаляет объект
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();
Однако после фиксации оба объекта все еще находились в базе данных. После поиска на I наткнулся this page на SO и поэтому я добавил:
uow.Session.Flush();
Однако, до сих пор остаются в сущности в БД. Кто-нибудь есть идея, почему это так?
Трудно сказать. do "g" и "k" имеют значение (я забыл, что NHibernate делает при попытке удалить null)? У них действительно есть ценность, которую вы ожидаете? IIRC, Flush() просто сбрасывает утверждения и автоматически вызывается перед фиксацией Commit(). –