我的问题非常简单,我完全相信那里有人会帮助我。
我尝试使用NHibernate调整延迟初始化的默认行为。我们知道,可以采用的两种方式是启用或禁用延迟加载。
但是当涉及到StatelessSession时,由于不支持Lazy,所有未获取的引用在尝试访问它们时都会抛出异常。 这就是我想要重现的内容,但使用常规的 ISession 。
我已经尝试过:
- 将Configuration.SetInterceptor(...)用于自定义拦截器。这里我设法使所有引用变为" null",但即使获取的引用也变为null。此外,它会对错误提出错误的想法;
- 实现一个自定义ISessionImplementor来装饰ISession实现。我决定使用这种方法,因为无状态会话实现抛出了我试图在调用ImmediateLoad方法时重现的确切异常。最后它没有用,但由于显而易见的原因 - SessionImpl根本就没有调用ImmediateLoad;
我的配置中的一些信息:
- 为所有映射启用了延迟加载。我使用Conventions.Add(LazyLoad.Always());
- 映射不是自动映射,而是自动生成"自动生成" (框架)。
期待为此问题找到解决方案。非常感谢=)
编辑:是的,我想要的是重新发布一个LazyInitializationException。