2010-04-02 35 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