我在生产Web服务器上收到以下错误:
NHibernate.LazyInitializationException
:
Initializing[Domain.Entities.AudienceTypes.Region#4]-failed to lazily initialize a
collection of role: Domain.Entities.AudienceTypes.Region.PeerGroups,
no session or session was closed
Run Code Online (Sandbox Code Playgroud)
这不好.让应用程序再次运行的唯一方法是重置IIS,这不是一个真正的选择.这是什么意思?我该怎样预防呢?
小智 10
要避免此问题,您需要在Region映射类中更改PeerGroups的引用,如下所示
References(x => x.PeerGroupId, "PeerGroupId").Fetch.Join();
添加Fetch.Join()将阻止LazyInitializationException.
默认情况下,关系是懒惰的.这意味着只有在访问保存关系的属性时才会执行加载关系的SQL查询.
问题是如果你访问一个懒惰的属性,之前从未调用过,会话关闭然后就会出现错误.你需要解决方案:
| 归档时间: |
|
| 查看次数: |
15868 次 |
| 最近记录: |