2010-08-17 54 views
0

我的应用程序包含两个视图,列表和详细信息。NHibernate通知其他会话有关更改

视图的每个实例都有自己的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 

什么是正确的方法“同步“会话并避免延迟加载异常?

谢谢

回答

1
Session.Refresh(object); 

您可能需要调用

Session.Evict(object); 

然后

Session.Refresh(object); 

在一些多到一的情况。

0

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