0

我们的应用程序包含包含客户列表和客户票证的导航栏。

主窗口的图像

When customer in left list selected - in right list loading tickets. NHibernate Session 在 MainWindow 启动时打开。在 ViewModel 中的 BackgroundWorker 上为每个客户加载票证。现在列表中约有 5000 名客户。当我快速选择一个客户,然后选择下一个客户时 - 如果第一个客户的票证列表尚未加载 - 我从 nhibernate 收到错误。错误不同:集合被刷新处理了两次,发现对集合的共享引用以及未在网格中加载的票证列表。我们不想在主 UI 线程中加载工单,因为这个冻结 UI 和工单可能会很重要。在我们的应用程序中如何正确使用 NHibernate 会话?

4

1 回答 1

0

我会按照这里的描述做

在后台线程中打开一个无状态会话以加载主网格的数据并为每个子窗口打开一个新会话并使用 changetracking 加载所选项目

于 2012-04-26T10:57:11.353 回答