NHibernate,Lazy Loading和Session as Singleton

时间:2011-04-25 18:55:13

标签: nhibernate lazy-loading

我是Nhibernate的新人。 我有延迟加载的应用程序。 我想写方法

public User GetUser(int id)

在我的UserPersister类中。 稍后,在应用程序中我想使用一些引用的属性,如User.Role或User.Address。 如果我关闭我曾经审阅过用户的Session,它就会工作。 我的第一个想法是创建Singleton Session,然后我将能够获得所有数据。 我读了一些文章,因为性能和内存泄漏是个坏主意。 这是真的吗?这个问题的解决方案是什么?

此致 马丁

2 个答案:

答案 0 :(得分:0)

查看Effectus有关WPF + NHibernate的简单方法。

答案 1 :(得分:0)

首先要记住NH会话!= sqlconnection。即使在wpf中,拥有全局(单例)会话通常也不是一个好主意,因为您迟早可以达到多线程场景。但是我绝对不会反对你的情况下的表现胡说八道。 我建议你在最短的时间内打开它来完成用例。执行一种分析,将您的应用程序的用例标识为具有有限生命周期的“会话”。例如购物车。你开始,你完成。您可以使会话生效,直到您完成此类用例。扔掉它......