Nhibernate 未能延迟初始化-没有会话或会话已关闭
我使用的是单个会话,我的应用程序包含不同的模块,从会话中获取的对象被保留。当我调用会话时。清除任何模块以刷新会话或实体。在获取任何其他模块中的子实体时,我收到异常“未能延迟初始化-没有会话或会话已关闭” [LazyInitializationException]未能延迟初始化角色集合:Application.Modules.Repository.childRepository,未关闭任何会话或会话 以下是我创建会话工厂和会话的方法:Nhibernate 未能延迟初始化-没有会话或会话已关闭,nhibernate,c#-4.0,Nhibernate,C# 4.0,我使用的是单个会话,我的应用程序包含不同的模块,从会话中获取的对象被保留。当我调用会话时。清除任何模块以刷新会话或实体。在获取任何其他模块中的子实体时,我收到异常“未能延迟初始化-没有会话或会话已关闭” [LazyInitializationException]未能延迟初始化角色集合:Application.Modules.Repository.childRepository,未关闭任何会话或会话 以下是我创建会话工厂和会话的方法: var createdSessionFactory = Flu
var createdSessionFactory = Fluently.Configure(configuration)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<DMProgram>())
.ExposeConfiguration(c => c.SetProperty("command_timeout", "500"))
.BuildSessionFactory();
ISession Session = NHibernateConfiguration.SessionFactory.OpenSession();
var createdSessionFactory=fluntly.Configure(配置)
.Mappings(m=>m.FluentMappings.AddFromAssemblyOf())
.ExposeConfiguration(c=>c.SetProperty(“命令超时”,“500”))
.BuildSessionFactory();
ISession Session=NHibernateConfiguration.SessionFactory.OpenSession();
案例:当我们从会话中获取对象(a)时。该对象有一些集合(B),它是延迟加载。您可以关闭或清除会话。现在您正在尝试获取集合(B)。确定您得到了这个错误
原因:因为会话不知道父对象(A)
解决方案:您需要持久化会话,或者您可以立即加载收集(B)。我们可以看到会话创建代码吗?为什么您认为
session.Clear()
会刷新会话或实体?它实际上会清除会话中的所有对象,并会中断所有延迟加载。如果我在创建会话时出错,请告诉我。