NUnitテストのTestFixtureTearDown部分で、私は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();
ただし、コミット後、2つのエンティティはまだデータベースにありました。
uow.Session.Flush();
はしかし、まだ実体はDBに残る:上の検索した後、私は私が追加SOなどにthis pageに出くわしましたなぜ誰がこのアイデアを持っていますか?
伝えるのは難しいです。 "g"と "k"は値を持っていますか(NHibernateがnullを削除しようとしたときに忘れてしまったもの)?彼らは実際にあなたが期待する価値を持っていますか? IIRC、Flush()は単に文をフラッシュし、Commit()によってコミットの前に自動的に呼び出されます。 –