NHibernate延迟加载。按需检索数据

时间:2010-09-16 20:11:59

标签: nhibernate lazy-loading

我有一些关联列表的课程。我希望在检索实体时不加载此列表,但是我希望稍后在我打算实体的会话之外加载此列表。 NHibernate的懒惰机制能做到这一点吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

理论上,您可以实现自己的IBytecodeProvider / ProxyFactory并执行您想要的任何操作。但这非常复杂,因此您需要坚持常规的NHibernate使用,这要求延迟加载需要活动会话。它可以是原始会话,也可以使用ISession.Lock()

重新附加上一个会话中的实体

答案 1 :(得分:0)

从会话外部,当您访问尚未加载的对象时,您将始终收到异常。

有一种方法可以从新会话中获取对象。您想要做的是被称为“远程延迟加载”。见http://www.theserverside.com/news/1363571/Remote-Lazy-Loading-in-Hibernate