Nhibernate在快速调用很多次时抛出“无法初始化代理 - 无会话”

时间:2011-09-06 07:17:30

标签: nhibernate session proxy initialization

我遇到NHibernate默认抓取行为的问题:

懒惰的提取

延迟提取可让您决定在第一个数据库命中中加载了多少对象图,以及哪个 只有在第一次访问时才应加载关联。懒惰的提取是一个基本的概念 对象持久性和获得可接受性能的第一步。

定义来自:Nhibernate In Action,2008

问题:

我有一个提交按钮,例如我点击了很多次。在服务器端,我通过导航对象图来检索对象,例如:

User us = new GetUserById(userId);
if (us.Address.Street != null)

其中一个用户在数据库架构上有一个地址。

第一次点击可以正常工作,但是如果我更快点击它就会产生异常: “无法初始化代理 - 无会话。” Nhibernate的

这种行为有解决方法吗?

感谢,

Tito Morais

1 个答案:

答案 0 :(得分:0)

您可以使用预先加载。请参阅以下链接:

http://nhibernate.info/doc/howto/various/lazy-loading-eager-loading.html