我正在使用 Fluent NHibernate 映射 ProductCategory 树,一切正常,直到我尝试遍历从数据库返回的树以确保它正确保存和检索。
这是我的测试方式:
- 实例化 4 个类别:饮料、啤酒、淡啤酒和黑啤酒
- 将啤酒添加到饮料中,然后将淡啤酒和黑啤酒添加到啤酒中。
- 保存饮料(级联设置为 AllDeleteOrphan)
- 刷新会话,它会保留整个树
- 从会话中逐出每个 ProductCategories
- 从数据库加载饮料
- 检查加载的对象(fromDB)是 EqualTo 但不是 SameAs Beverages。
- 检查 fromDB 是否只有一个子 ProductCategory
- 检查 fromDB 中唯一的孩子是 EqualTo 但不是 SameAs Beer
测试失败,因为孩子是 SameAs 啤酒。这意味着它实际上并没有从数据库中加载对象,因为它仍在某个地方的 NHibernate 会话中。
任何见解将不胜感激。
编辑:回应肖恩的以下评论。我正在使用内存中的 SQLite 数据库,因此一旦会话/连接关闭,数据库就会被吹走。