数据插入上的核心数据级联
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>
【讨论】:
以上是关于数据插入上的核心数据级联的主要内容,如果未能解决你的问题,请参考以下文章