我遇到NHibernate默认抓取行为的问题:
懒惰的提取
延迟提取可让您决定在第一个数据库命中中加载了多少对象图,以及哪个 只有在第一次访问时才应加载关联。懒惰的提取是一个基本的概念 对象持久性和获得可接受性能的第一步。
定义来自:Nhibernate In Action,2008
问题:
我有一个提交按钮,例如我点击了很多次。在服务器端,我通过导航对象图来检索对象,例如:
User us = new GetUserById(userId);
if (us.Address.Street != null)
其中一个用户在数据库架构上有一个地址。
第一次点击可以正常工作,但是如果我更快点击它就会产生异常: “无法初始化代理 - 无会话。” Nhibernate的
这种行为有解决方法吗?
感谢,
Tito Morais
答案 0 :(得分:0)
您可以使用预先加载。请参阅以下链接:
http://nhibernate.info/doc/howto/various/lazy-loading-eager-loading.html