数据插入上的核心数据级联

Posted

技术标签:

【中文标题】数据插入上的核心数据级联【英文标题】:Core Data cascade on Data Inserts 【发布时间】:2011-07-29 18:06:40 【问题描述】:

我目前正在学习在 ios 上使用 Core Data,在我的测试应用程序中,我有两个具有反比关系的实体,删除级联工作正常,但我想知道是否也可以进行更新或插入级联?例如,如果我创建实体 1 的新实例,我希望将其某些属性复制到实体 2 的新对象上。

我必须为此编写一些代码还是有一些内置的解决方案? 在互联网上搜索没有结果。

(另外,由于我是 Core Data 的新手,所以我在考虑表,因为我的持久存储是 SQLite 的,因此插入一个表必须本质上将一些属性复制到另一个表中)

【问题讨论】:

【参考方案1】:

尝试以不同的方式思考它。如果这两个对象共享这些属性,那么最好创建另一个包含这些字段的实体,并且实体 1 和实体 2 都将具有共同的关系。拥有相同数据的多个副本似乎并不是一个可以避免的好主意。

【讨论】:

【参考方案2】:

(您没有提到关系的多样性,这可能很重要。) 不确定这是否直接解决了您的问题,但是……

如果你有A <--> B。 (一对一关系)

级联规则: A cascades: B B nils: A

(这是 A“拥有”B 的描述)

(高于 A/B == 实体,低于 A/B == 实体实例)

如果A(1) -> B(2)

然后你设置

A(3) -> B(2)

B(2) 与 A(1) 的反向关系在设置为 A(3) 之前为零 A(1) 留下一个 nil 值(如果这在数据模型描述中无效,那么您现在遇到了麻烦,否则,它是 B-less)

A(1) -> <nil>

【讨论】:

以上是关于数据插入上的核心数据级联的主要内容,如果未能解决你的问题,请参考以下文章

三大框架 之 Hibernate查询(一对多多对多查询关系)

sql级联更新和级联删除不起作用

核心数据模型级联删除和父实体

核心数据级联删除不可靠?

Django实现数据级联操作

hibernate初步2