父母子女语境困惑&并发问题

时间:2016-11-10 13:34:39

标签: ios core-data concurrency parent-child

对父子上下文设置以及数据行为方式几乎没有疑问。任何人都可以建议一个链接,我可以找到他们如何工作的正确解释。

少数积分&观察

  1. 父上下文充当子上下文的存储: - 但父级中的更改不会反映在子级中。
  2. 问题1 :如果父上下文充当子上下文的存储,那么为什么父项中的更改不会反映在子上下文中,而子项则会获取它们。

    观察:

    1. 在父级中插入: - 子获取请求获取这些对象。
    2. 更新/删除父对象中的对象: - 然后获取请求不会获取更新的对象,而是在子上下文中为我们提供对象,因此如果我们需要更新的对象,我们必须重置上下文但我们将丢失子上下文中的所有更改或刷新对象。
    3. 问题2:子项会覆盖父上下文值。因此,如果用户在父上下文中修改了某些内容,而且孩子也修改了相同的内容,那么用户的更新将会丢失。在涉及人际关系之前,这并不是什么问题。

      假设实体A,B之间存在一对多的关系(A-> B)。

      父上下文:将新子项插入实体A,称为Child-1。

      子上下文:删除实体A及其所有子项。

      所以现在当子节点保存到父上下文,然后删除实体A及其旧子节点时,新插入的子节点1保留在上下文中,引用父节点。

      如何解决此问题?

1 个答案:

答案 0 :(得分:0)

问题1 因为您已经获取了数据,所以如果您想强制执行提取,则应该重置上下文或刷新对象。

问题2 如果要在删除父实体A时始终删除实体B,则可以尝试使用级联删除。