我需要多个上下文来更新独立对象吗?

Posted

技术标签:

【中文标题】我需要多个上下文来更新独立对象吗?【英文标题】:Do I need multiple contexts to update independent objects? 【发布时间】:2017-01-28 21:21:28 【问题描述】:

我有一个视图控制器,它更新从前面的表视图中选择的单个托管对象(A 类)。但是,VC 上有一个按钮,它加载另一个视图控制器来更新第二个托管对象(B 类)。两个视图控制器都以正常方式具有保存和取消按钮。

我的要求是我可以提交(保存上下文)对 B 的更改并展开 VC 以继续对 A 进行编辑。A 更改可能会被保存或取消,但我希望 B 保持更改。

从概念上讲,这似乎需要同一级别的独立上下文。即我不能为 B 使用子上下文,因为如果取消 A 更新,这些更改仍然会回滚。

我可以创建两个主要上下文,还是需要创建两个主要上下文的子上下文?然后,我可以根据需要保存或回滚两个子上下文并保存主上下文。有没有更好的方法来做到这一点?

谢谢,

朱利安

【问题讨论】:

【参考方案1】:

因为每个对象的更改都可以取消,但在其他方面是独立的。您将希望为它们中的每一个使用主要上下文的子上下文。上下文虽然不便宜,但也不是特别昂贵。您使用子上下文来轻松取消更改是一种标准且受鼓励的模式。

【讨论】:

我就是这么想的。谢谢 如果您对我的回答感到满意,那么您应该考虑接受我的回答,方法是单击上下箭头旁边的灰色复选标记。

以上是关于我需要多个上下文来更新独立对象吗?的主要内容,如果未能解决你的问题,请参考以下文章

核心数据:父/子托管对象上下文是不是适合更新一组多个对象?

核心数据:具有多个上下文的独立持久存储与具有单个上下文的独立持久存储

一个托管对象上下文的两个持久存储 - 可能吗?

如何为多个数据库启用迁移,但只有一个上下文?

递归神经网络(Elman 网络)。上下文到隐藏/隐藏到上下文层权重需要更新吗?

我可以通过 django 视图访问装饰器中的上下文对象吗