使用nhibernate winforms应用程序支持多用户

使用nhibernate winforms应用程序支持多用户,winforms,nhibernate,Winforms,Nhibernate,我正在开发一个多用户winforms应用程序(MDI)。我们的应用程序使用NHibernate,每个实例使用一个会话 问题是,如果一个用户进行了修改,例如,一个用户向列表中添加了一个项目,那么另一个用户不会立即看到此修改。我该如何解决这个问题,推荐的方法是什么?我应该为每个表单使用一个会话还是其他什么?每个应用程序都需要定义自己的工作单元。对于您的用例,如果您希望在用户每次向列表中添加项目时更新数据库,那么这应该是您的工作单元 因此,为了回答您关于独特用例的问题,我将创建一个新的NHiberna

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


问题是,如果一个用户进行了修改,例如,一个用户向列表中添加了一个项目,那么另一个用户不会立即看到此修改。我该如何解决这个问题,推荐的方法是什么?我应该为每个表单使用一个会话还是其他什么?

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

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

仅供参考:如果每个用户创建一个会话操作确实是您的应用程序所希望的行为,那么您不应该觉得这有什么不对。通常,在WinForms应用程序中,大多数人确实使用每个表单的会话模式,但这也是因为大多数WinForms应用程序都属于这样一种模式,即用户需要先完成一个表单,然后再继续下一个表单。在这些情况下,您只希望在用户提交表单时保留/保存用户的更改。但如果您的应用程序不属于该模型,那么您对工作单元(会话生命周期)的定义可能会完全不同