我的对象图包含两个实体:具有一对多关系的作者和书(一位作者可能会写很多书)
我希望删除一本书时,作者也会被删除,但前提是数据库中没有其他书籍连接到该作者。 (这意味着只有在删除最后一位作者的书时才应删除作者)
这样做的最佳方式是什么?
答案 0 :(得分:3)
您可以在-prepareForDeletion
上的NSManagedObject
方法中添加删除逻辑。您应该能够断言您想要的任何政策。
答案 1 :(得分:1)
我希望有条件级联删除规则这样的东西,但假设没有,我使用了常规的无效规则,然后对删除实现了一些特殊处理,如下所示:
- (IBAction) deleteBook:(id)sender { // or whatever method handles the deletion
NSManagedObjectContext *context = // get a ref to the context
Book *bookToDelete = // get the selected book
if (bookToDelete.authorMember && [bookToDelete.authorMember.bookMembers count] == 1)
[context deleteObject:bookToDelete.authorMember];
[context deleteObject:bookToDelete];
}