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 删除外部存储实体不会释放 iCloud 中的空间