【问题标题】:NHibernate list/detail views using different sessions, but changing same objectNHibernate 列表/详细视图使用不同的会话,但更改相同的对象
【发布时间】:2010-08-16 11:53:19
【问题描述】:

我的应用程序包含两个视图,列表和详细信息。

基本上,当用户双击列表中的一行时,我将选定的项目对象传递给详细视图。

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

当用户修改对象属性时,我的列表视图需要反映更改,为此我实现了 INotifyPropertyChanged 接口。

当我尝试从详细信息视图中保存更改时,我收到“非法尝试将集合与两个打开的会话相关联”。我知道这个异常意味着什么,也知道为什么会发生。

避免此问题的最佳方式/模式是什么,以便数据绑定工作正常并且 NHibernate 也很高兴。

非常感谢!

【问题讨论】:

    标签: wpf nhibernate data-binding session


    【解决方案1】:

    这是我们用于会话之间更新通知的内容:http://github.com/ayende/Effectus/blob/master/Effectus/Infrastructure/EventPublisher.cs

    您不应该在会话之间共享持久对象。而是传递 ID。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多