0

我的应用程序有时会将对象插入到托管对象上下文中,这些对象不一定要保存。例如,当我启动“添加实体”模式时,我会创建一个托管对象并将其分配给该模式。如果用户从该模式保存,我保存上下文。如果他取消,我会删除该对象并且不需要保存。

我现在引入了一个“导入”功能,它可以切换到我的应用程序(使用 URL 方案)并添加一个实体。因为这些模态之一可能是打开的,所以此时保存上下文是不安全的。为模态创建的瞬态对象将被保存,即使用户取消,并且不能保证删除(来自取消操作)将被保存 - 用户可能会退出应用程序。

同样,我不能在我的应用退出时简单地保存。如果此时模态框处于打开状态,则临时对象将被错误地保存。

我正在寻找一种策略来处理这种架构。我正在考虑一些允许我识别导入实体的“标记”解决方案。当用户用户退出应用程序时,我将检查上下文是否有任何未保存的更改。如果是这样,我将过滤掉除了导入的实体之外的所有内容,然后保存。我不知道这是否可能(选择性保存)或一个好主意。

4

1 回答 1

0

凯文和安德鲁的评论(以及链接的文章)足以让我前进。我在这个问题上得到了一些后续建议。

总之,我使用子上下文来创建瞬态对象,然后将其合并到主上下文中。实际上,我只需要临时上下文作为插入对象的位置 - 例如,如果可以在插入消息之外创建它,我可以这样做,然后在确认时将其直接插入主上下文。

于 2013-01-11T20:03:34.987 回答