我正在使用单个会话,我的应用程序包含不同的模块,并且从会话中获取的对象被保留。当我从任何模块调用 Session.Clear 以刷新会话或实体时。在获取任何其他模块中的子实体时,我收到异常“无法延迟初始化 - 没有关闭会话或会话” 。
[LazyInitializationException] 无法延迟初始化角色集合:Application.Modules.Repository.childRepository,没有会话或会话已关闭
这就是我创建 Session 工厂和 Session 的方式:
var createdSessionFactory = Fluently.Configure(configuration)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<DMProgram>())
.ExposeConfiguration(c => c.SetProperty("command_timeout", "500"))
.BuildSessionFactory();
ISession Session = NHibernateConfiguration.SessionFactory.OpenSession();