Core Data 中的 DENY 删除规则何时真正拒绝删除对象?

Posted

技术标签:

【中文标题】Core Data 中的 DENY 删除规则何时真正拒绝删除对象?【英文标题】:When does the DENY delete rule in Core Data actually deny deletion of an object? 【发布时间】:2010-06-13 09:54:36 【问题描述】:

员工与其所在的部门具有反向关系,反之亦然。 Employee 实体有一个称为部门的关系,它有一个拒绝删除规则。员工应被删除。现在: DENY 是否真的拒绝删除员工,因为部门仍在引用部门?或者这是否意味着一个部门不能被删除,因为一个员工正在引用它?

【问题讨论】:

【参考方案1】:

删除规则总是从它们被设置的对象的角度来看,所以我认为你的描述倒退了。在这种情况下你想要的是:

员工可以随时删除,与部门的关系应取消。这意味着您将部门关系设置为无效。

只有在没有员工的情况下才能删除部门。这需要一个拒绝规则,该规则将阻止删除包含任何员工记录的部门。

您的描述暗示了相反的意思,这意味着除非将其部门设置为 nil,否则无法删除该员工。虽然肯定有可能,但似乎没有必要。

【讨论】:

很好的解释,但你错过了最重要的部分 --- 设置你的示例(和明智的)删除规则,在哪个实体上,你会在哪个关系上设置“拒绝”规则? 总是从关系的源头。

以上是关于Core Data 中的 DENY 删除规则何时真正拒绝删除对象?的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 在更新时应用删除规则

删除时如何手动管理Core Data关系

Core Data 删除外部存储实体不会释放 iCloud 中的空间

何时版本化 Core Data 模型

应用程序状态何时属于 Core Data 而不是 NSUserDefaults?

告知 iCloud 何时没有更多待处理的 Core Data 更新更改