【发布时间】:2023-03-24 08:21:02
【问题描述】:
我正在努力适应 NHibernate 的学习曲线。
我们目前正在移植我们的 C# Winforms 应用程序以使用 NHibernate,并且正在使用 Gabriel Schenker 详述的工作单元 (UnitOfWork)。
NHibernate and the Unit of Work Pattern
我们希望在“对话式”的基础上使用 UnitofWork。例如,当用户打开一个表单时,我们会打开一个 UnitOfWork 会话,然后保持打开状态直到表单关闭。表单只是定义业务对话的一种更简单的方式,我们可能会根据具体实现稍作更改,但对于本示例,请使用表单打开和关闭作为示例。
当我们有一个表单在另一个表单之上打开的场景时,问题就存在了。在这种情况下,我们应该有两个 UnitOfWork 操作。一个对基础表单仍然有效,一个新的 UnitOfWork 用于新表单。
我们如何实现这一点? Gabriel 提供的 UnitOfWork 功能只允许每个 UnitOfWork 一个会话?我最初的想法是将会话存储在字典中,以便可以从应用程序的任何形式或部分调用会话。
你的想法?
【问题讨论】:
标签: c# nhibernate session unitofworkapplication