跨数据库会话/工作单元复制持久数据

时间:2010-03-19 20:06:16

标签: c# orm devexpress

我使用DevExpress的XPO ORM,但我怀疑这适用于许多其他ORM,这种情况一直发生在我身上,并且开始变得烦人。

情况是:

  • 1表单,其中UnitOfWork用于使用来自db的数据填充用户控件等。 (例如,用户设置表格)
  • 一个对话框窗口,其中包含用于填充用户控件的UnitOfWork。 (例如,权限屏幕)

我能想到的决议并不理想。请记住,我不能在XPO中的会话/工作单元之间复制对象(据我所知)。

  1. 我不想只是在对话框中创建持久对象并使用对话框的工作单元提交它们,因为用户无法在不进行更改的情况下取消表单(除非我去了返回数据库并删除对话框中持久保存的对象

  2. 强制软件中的所有对话框引用构造函数中的工作单元,这很糟糕。

  3. 必须在对话框中创建的表单中重新创建对象,味道也很糟糕。

  4. 我还能做什么?

1 个答案:

答案 0 :(得分:0)

这是一个迟到的答案,但可能会帮助其他人: 问题的解决方案是使用Nested Units of Work