2010-04-02 73 views
3

我正在使用常规会话通过linq从数据库加载一些项目。问题在于它会缓存实体,并且会非常多地增加内存负载。有没有办法在无需在客户端代码中引入很多更改的情况下将会话替换为无状态会话?Linq有无状态会话的Nhibernate吗?

+0

http://stackoverflow.com/questions/118108/how-do-i-totally-disable-caching- in-nhibernate – 2010-04-02 08:46:20

回答

1

无法在IStatelessSession中使用Linq。

您可以使用所有其他查询方法(Get,Criteria,HQL和SQL)。

更新(2010-07-19):我相信史蒂夫可能会增加这个在NH 3.X提供商)

0

您有懒加载打开?

我对LINQ to NHibernate没有任何经验,但在我的应用程序中,延迟加载会使性能发生巨大差异。

+0

问题是高内存消耗。在内存分析期间,我发现内存没有被垃圾收集器释放。问题转为无法禁用的第一级缓存。尽管会话关闭后,内存仍被清理干净。 – 2010-04-07 13:10:58