Wpf NHibernate通知其他会话有关更改

Wpf NHibernate通知其他会话有关更改,wpf,nhibernate,lazy-loading,Wpf,Nhibernate,Lazy Loading,我的应用程序由两个视图组成,列表和详细信息 视图的每个实例都有自己的NHibernate会话 当用户从详细信息视图保存实体时,一个事件将发布到列表视图(实体id),之后,列表视图使用自己的会话重新获取修改后的实体 为了让列表视图的会话获得修改实体的新版本,我调用了session.Clear()方法,它工作正常,但随后我开始获得: Initializing[Core.Domain.Order#0001730]-failed to lazily initialize a collection of

我的应用程序由两个视图组成,列表和详细信息

视图的每个实例都有自己的NHibernate会话

当用户从详细信息视图保存实体时,一个事件将发布到列表视图(实体id),之后,列表视图使用自己的会话重新获取修改后的实体

为了让列表视图的会话获得修改实体的新版本,我调用了session.Clear()方法,它工作正常,但随后我开始获得:

Initializing[Core.Domain.Order#0001730]-failed to lazily initialize a collection of role: Core.Domain.Cable.OrderItems, no session or session was closed
“同步”会话和避免延迟加载异常的正确方法是什么


谢谢

不要使用长时间运行的会话。它们不是为同步而设计的(这就是为什么要使用数据库?)。Session.Clear()只能在特殊情况下使用

Session.Refresh(object);
你可能得打个电话

Session.Evict(object);
然后

在一些多对一的情况下

Session.Refresh(object);