在以下场景中,我应该如何使用工作单元模式:
我正在写一个winforms应用程序。我有一个屏幕,用户可以编辑单个订单。在此屏幕上,用户可以打开另一个表单以选择送货公司。在进行选择之前,用户还可以在该子窗体中添加/编辑现有的发货公司。
如何使用Unit of work模式实现此场景?目前,我在订单输入屏幕上有一个工作单元。我的第一个想法是将儿童形式也包括在这个工作单元中。问题是,交付公司的更改应该在子窗体中持久化。但当我将更改持久化到快递公司时,这也将持久化订单中的更改。
我是否应该创建第二个工作单元,以便对递送公司进行任何编辑?在这种情况下,如何使该工作单元中的更改在第一个工作单元中可见?
发布于 2009-01-26 07:46:52
从你的描述中,听起来好像你在这里真的有两个工作单元。第一个是“订单输入”,第二个是“编辑发货公司”。每个工作单元都有一些底层类型的会话或事务。要从子窗体到订单条目进行通信,您必须从子窗体的会话中分离公司的对象,并将其重新附加到父窗体。如何实际实现这取决于您正在使用的数据访问层,但一种简单的方法是传递公司的ID。
发布于 2015-03-08 00:51:07
目前我有一个用于订单输入屏幕的工作单元。问题是,交付公司的更改应该在子窗体中持久化。
如何使用Unit of work模式实现此场景?
OrderEditForm和DeliveryCompanyCollectionEditForm应该共享共享同一工作单元的同一DeliveryCompanyRepository。DeliveryCompanyRepository应返回在工作单元期间添加的数据库+公司的公司。这样,新的delivery company对象应该在OrderEditForm中可用,而无需持久更改。
我应该为快递公司的任何编辑创建第二个工作单元吗?在这种情况下,如何使该工作单元中的更改在第一个工作单元中可见?
在数据同步中,需要特别注意并行使用的两个或多个工作单元。当一个工作单元提交时,一些中介者通常会更新所有其他工作单元,如另一个答案中所述。
https://stackoverflow.com/questions/479051
复制相似问题