【问题标题】:Multi-user support with nhibernate winforms applicationnhibernate winforms 应用程序的多用户支持
【发布时间】:2012-09-24 13:53:13
【问题描述】:

我正在开发一个多用户 winforms 应用程序 (MDI)。我们的应用程序使用 NHibernate 并且每个实例一个会话。

问题是如果用户进行了修改,例如用户将项目添加到列表中,另一个用户不会立即看到此修改。我该如何解决这个问题,推荐的方法是什么?我应该使用 One-session-per-form 还是其他方式?

【问题讨论】:

    标签: winforms nhibernate


    【解决方案1】:

    每个应用程序都需要定义自己的工作单元。对于您的用例,如果您希望每次用户将项目添加到列表时更新数据库,那么这应该是您的工作单元。

    因此,为了针对您的独特用例回答您的问题,我将创建一个新的 NHibernate 会话,保留用户更改,并在每次用户将项目添加到列表时处理该会话。

    仅供参考:如果这确实是您的应用程序想要的行为,您不应该觉得为每个用户操作创建一个会话有什么问题。通常在 WinForms 应用程序中,大多数人确实使用 Session-per-Form 模式,但话又说回来,这是因为大多数 WinForms 应用程序都属于用户需要在继续下一个表单之前完成一个表单的模型。在这些情况下,您只想在用户提交表单时保留/保存用户的更改。但是,如果您的应用程序不属于该模型,那么您对工作单元(会话生命周期)的定义可能会完全不同。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 2011-02-02
      相关资源
      最近更新 更多