核心数据 - 反向删除规则......我应该应用哪一个?

时间:2011-07-22 21:45:25

标签: objective-c core-data

我的示例应用程序中有1对多的关系,取自Core Data文档,其中一个Manager有多个员工。我得到了关于如何设置Manager-to-Employee关系删除规则的部分,但是Employee-to-Manager关系呢?如果我想要一个案例,如果所有员工都被删除,我希望管理员也被删除,我应该应用哪种删除规则? Cascade没有意义,因为如果删除了一名员工,即使他/她还有其他员工仍然关联,管理员也会被删除。 Nullify将正确删除关系,但在删除最后一名员工时不会删除管理器。 我错过了什么,或者在这种情况下我是否必须做一些自定义的事情?

1 个答案:

答案 0 :(得分:3)

删除规则没有足够的特异性来说,“删除自我,如果关系'bobs'包含少于'x'的对象。”

相反,您应该将此类业务逻辑放在自定义NSManagedObject子类中。您可以检查ManagerremoveEmployeeObject:removedEmployeeObjects:方法,该方法告诉Manager实例在employees关系为空时自行删除。

您还可以对此方法或willSave方法使用验证方法。