上下文:我正在开发一个.NET 3.5 Windows应用程序,一旦RAM被NHibernate一级缓存完全填满,它就会崩溃。
问题1:NHibernate的第一级缓存算法是否执行内存检查以确保存在足够的空间?
问题2:使用Evict方法时,以下伪代码步骤是否正确?
1 - session.Query
2 - 保存查询结果
3 - session.Evict
4 - 返回已保存的结果
更新
在应用程序开始时创建会话并且仅在应用程序结束时处理掉的上下文中,我希望控制NHibernate的第一级缓存大小。 NHibernate文档详细解释了缓存如何工作以及如何管理它,但没有提及缓存大小,这在我的案例中是一个问题。
问题3:是否可以知道会话的缓存大小(如果需要,随后将其清除)?或者,可以设置Nhibernate可以使用应用程序范围的缓存大小的限制吗?