核心数据:如何删除关系中的实体

时间:2010-03-10 16:51:18

标签: iphone core-data data-modeling ios-simulator

我在iPhone上有一个复杂的核心数据图。用户实体有许多其他实体,它们彼此相关,具有多种关系等......

我的问题是当我删除用户实体时如何删除所有相关实体。

提前致谢!

2 个答案:

答案 0 :(得分:6)

在您的用户实体中,将每个关系删除规则设置为“级联”。

另请参阅this answeriPhone Core Data: Cascading delete across a many-to-one relationship

答案 1 :(得分:3)

您将用户实体端的delete rule设置为级联。删除用户实体时,与删除规则级联关系中保存的所有其他实体也将被删除。如果它们同样与其他实体有关系,则可以将这些关系的删除规则设置为级联。当您删除最顶层节点时,这将删除整个逻辑树。

E.g

user--(phoneNumbers,Cascade)->>phoneNumber
user<--(user,nullify)--phoneNumber

删除用户会触发删除phoneNumber,但删除phoneNumber只会使与用户的关系无效。否则,用户实体不受影响。

如果你有一棵树......

用户 - (PHONENUMBERS,级联) - &GT;&GT; phoneNumber的 - (PHONENUMBERS,级联) - &GT;&GT; areaCodes

...然后删除用户删除所有phoneNumbers并删除phoneNumber导致删除其所有areaCodes