虽然它在图形化数据模型编辑器是不会立即显现每一recipocal关系即每个
<-->
...实际上是两个各有各的DELET独立关系e规则。当删除规则的实体的对象被删除时,删除规则被激活。
所以,如果在数据模型编辑器,你有两个实体Alpha
和Beta
有关系:
Alpha.betas<-->>Beta.alpha
...那么你真的有像这样两个关系:
Alpha.betas--(delete rule)-->>Beta.alpha
Beta.alpha--(delete rule)-->Alpha.betas
你从来没有想要建立这样的删除规则:
Alpha.betas--(cascade)-->>Beta.alpha
Beta.alpha--(cascade)-->Alpha.betas
...因为删除任何一个Beta
实例将删除关联的Alpha
对象,该对象将触发删除所有相关的对象Beta
。根据数据模型的细节,相互级联可能会意外删除大部分数据。
你真正想要的是:
Alpha.betas--(cascade)-->>Beta.alpha
Beta.alpha--(nullify)-->Alpha.betas
现在,当你删除Alpha
对象,它会删除所有相关Beta
对象。
级联被阻塞时,通常会出现所需关系的问题。如果没有数据模型的细节,就无法确定。
快速的问题,当我运行'[上下文deleteObject:EntityA];'这将确保所有的测试版被删除正确,如果我有它的设置就像你在最后一段代码? –
假设没有其他东西阻止删除。 – TechZen
但是如果我删除所有Betas?如何在这种情况下自动删除Alpha? – shoumikhin