会话关闭后,nhibernate不会释放内存

时间:2011-01-04 17:52:33

标签: nhibernate

我正在使用NHibernate 2.2和c#3.5和VS2008,

问题是当我关闭Nhibernate Session对象时,内存未释放。 甚至我在每次关闭后调用GC.Collect(),但没有任何东西被释放

如何在会话关闭时强制NHibernate释放会话中加载的对象?

感谢

2 个答案:

答案 0 :(得分:1)

使用Dispose而不是close。 (不仅适用于Session,还适用于在.net中实现IDisposable的每个对象)

答案 1 :(得分:1)

即使您致电GC.Collect();,也有很多事情可以防止实际发生垃圾收集。例如,如果其他仍处于活动状态且正在使用的对象持有对您不再需要的内容的引用,则该对象将保持活动状态。

另外请不要忘记,所使用的内存的一部分将是NHibernate为您返回数据库的对象。