NHibernate-ISession.Clear()与ISession.GetSessionImplementation().PersistenceContext.Clear()的比较

NHibernate-ISession.Clear()与ISession.GetSessionImplementation().PersistenceContext.Clear()的比较,session,caching,nhibernate,lazy-loading,Session,Caching,Nhibernate,Lazy Loading,执行会话.Clear()与会话.GetSessionImplementation().PersistenceContext.Clear()之间的主要区别是什么 在我的例子中,理想情况下,我只会清除代码中上下文切换的缓存,因为我希望防止从以前的上下文加载对象。而且,我不会得到我得到的错误: NHibernate.LazyInitializationException:初始化[…#34]-未能延迟初始化角色集合[…],未关闭任何会话或会话 session.Clear()清除PersistenceCo

执行
会话.Clear()
会话.GetSessionImplementation().PersistenceContext.Clear()之间的主要区别是什么

在我的例子中,理想情况下,我只会清除代码中上下文切换的缓存,因为我希望防止从以前的上下文加载对象。而且,我不会得到我得到的错误:

NHibernate.LazyInitializationException:初始化[…#34]-未能延迟初始化角色集合[…],未关闭任何会话或会话


session.Clear()
清除PersistenceContext,并取消所有挂起的操作(保存、更新和删除)。

很抱歉对此评论进行死灵巫术,但是
session.Clear()
是否还会阻止以前打开的所有
将来的
加载?如果我尝试在
session.Clear()
之后使用
.Value
未来,则NHibernate不会为我抛出任何会话异常。