如何自动卸载未使用的nhibernate对象

时间:2014-01-09 12:58:27

标签: c# nhibernate fluent-nhibernate

BuildingStructureMain有列表BuildingStructure 每个BuildingStructure

  • 有自己的属性
  • list Flat

每个单位都有

  • 有自己的属性
  • 房间

每个房间都有

  • 有自己的属性
  • 与文章有关系(表格:room-> room_article_map,文章) ...

除了加载BuildingStructureMain之外,我们不会触发任何nhibernate查询,并且当用户通过UI向下钻取时,其余部分都会延迟填充

我们正在使用statefull会话来加载数据,因为我们还想修改数据。当用户浏览完整的构建时,内存会消耗增加。

有没有办法自动延迟/智能卸载在一段时间后没有被修改的对象/其他策略?

修改#1

如何获取实际对象列表,即没有在nHibernate中加载的透明对象? 当加载/修改对象时,是否有任何可以挂钩的事件?

我可以收听此事件并将对象保留在我的集合中以及上次访问的时间戳。然后,此集合将用于我的专有垃圾收集机制以释放内存。

这可能吗?

0 个答案:

没有答案