NHibernate一级缓存

时间:2015-08-17 13:37:24

标签: c# nhibernate fluent-nhibernate first-level-cache

上下文:我正在开发一个.NET 3.5 Windows应用程序,一旦RAM被NHibernate一级缓存完全填满,它就会崩溃。

问题1:NHibernate的第一级缓存算法是否执行内存检查以确保存在足够的空间?

问题2:使用Evict方法时,以下伪代码步骤是否正确?

1 - session.Query

2 - 保存查询结果

3 - session.Evict

4 - 返回已保存的结果

更新

在应用程序开始时创建会话并且仅在应用程序结束时处理掉的上下文中,我希望控制NHibernate的第一级缓存大小。 NHibernate文档详细解释了缓存如何工作以及如何管理它,但没有提及缓存大小,这在我的案例中是一个问题。

问题3:是否可以知道会话的缓存大小(如果需要,随后将其清除)?或者,可以设置Nhibernate可以使用应用程序范围的缓存大小的限制吗?

1 个答案:

答案 0 :(得分:1)

通常,您不应该为您的应用使用单个会话。通常,您应该为每个工作单元创建一个。桌面应用程序中有多个会话管理示例: one two

相关问题