Я сопоставляю дерево ProductCategory с использованием Fluent NHibernate, и все шло хорошо, пока я не попытался пройти дерево, которое возвращается из базы данных, чтобы обеспечить его сохранение и последующее восстановление.NHibernate не вытесняет объекты из сеанса
Вот как я проверяю:
- Instantiate 4 категории: напитки, пиво, светлое пиво и темное пиво
- Добавить пиво в напитки, то светлое пиво и темное пиво с пивом.
- Сохранить напитки (каскад установлен в AllDeleteOrphan)
- Промойте сессии, которая сохраняется по всему дереву
- выселить каждый из ProductCategories от сессии
- нагрузки Напитков из базы данных
- Проверьте, что загруженный object (fromDB) является EqualTo, но не SameAs Beverages.
- Убедитесь, что fromDB имеет только один ребенок ProductCategory
- Убедитесь, что единственный ребенок в fromDB является EqualTo, но не SameAs Пиво
Тест терпит неудачу, потому что ребенок является SameAs пиво. Это означает, что на самом деле это не загрузка объекта из базы данных, поскольку он все еще находится в сеансе NHibernate.
Любое понимание будет оценено по достоинству.
Редактировать: В ответ на комментарии Шона ниже. Я использую базу данных SQLite в памяти, поэтому, как только сеанс/соединения закрыты, база данных сдувается.
Спасибо за ответ, я ответил в правке вопроса. – RKitson