我在iPhone上有一个复杂的核心数据图。用户实体有许多其他实体,它们彼此相关,具有多种关系等......
我的问题是当我删除用户实体时如何删除所有相关实体。
提前致谢!
答案 0 :(得分:6)
在您的用户实体中,将每个关系删除规则设置为“级联”。
另请参阅this answer至iPhone 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