【发布时间】:2009-09-30 20:57:02
【问题描述】:
使用 Castle ActiveRecord,我在延迟加载时遇到了问题。
以下作品(显然)
using (new SessionScope())
{
User singleUser = User.FindFirst(...)
UserGroup groups = singleUser.Groups; // Lazy-loading groups.
}
由于我需要在特定上下文中修改会话过滤器(使用拦截器),因此我创建了一个新的 SessionScope。
using (new SessionScope())
{
User singleUser;
EnableVariousFiltersInThisThread();
using (new SessionScope())
{
singleUser = User.FindFirst(...);
}
DisableVariousFiltersInThisThread();
UserGroup groups = singleUser.Groups; // Lazy-loading groups.
}
最后一行“singleUser.Groups”抛出 LazyInitializationException:“未能延迟初始化角色集合:组,没有会话或会话已关闭”。
但是,所有其他会话操作都可以正常工作。因此,似乎“singleUser”绑定到了现在处理的 SessionScope。为什么?又该如何解决呢?
【问题讨论】:
标签: nhibernate castle-activerecord filter session-scope