我知道有很多关于核心数据关系删除规则的问题,但我找不到我的“问题”的答案。
在我的核心数据模型中,CDMTransaction
和CDMTransactionTag
实体(CDMTransaction.tags <<->> CDMTransactionTag.transactions
)之间存在多对多关系。每个事务都可以链接到零个,一个或多个标记,然后每个标记都可以链接到一个或多个事务(或者为零,但是保留它没有意义,这就是我正在处理的事情)
因此,当我删除标记(将是“Nullify”删除规则)时,它将从具有此标记的事务中删除。还行吧。
但我想要做的是,当我删除一个事务并且其链接的标记仍未使用时(CDMTransactionTag.transactions.@count == 0
),这个/这些标记也应该被删除。
我可以为CDMTransaction
实体设置“级联”规则吗?它会删除所有链接的标签,即使它们仍然链接到其他交易,不是吗?
我是否被迫以编程方式执行此操作?
谢谢!
编辑:事实上,我只想在CDMTransactionTag
时删除.transactions.@count == 0
个实例(所以只有当我删除某些交易时才会检查它,但是当我更改标签时也不应该检查交易)。
答案 0 :(得分:0)
不知道您是否仍在追求所需范围内的解决方案。
我正在处理类似的问题,并希望分享到目前为止的发现:
在删除规则中,只有级联才会删除关系(第一个)目标处的对象(例如,您的问题:您的* Tag实体实例)
它会删除目标对象,即使它们仍“仍链接到其他事务”,除非...,
除非“链接到其他交易”是具有删除规则被拒绝的关系(第二),
因为只有拒绝规则才能阻止源对象在规则中的关系(第二个)目标处至少有一个对象时被删除;
删除规则用于指定如果进行ATTEMPT删除源对象(即紧接可能的源对象删除发生的那一刻)应该发生的情况。
我尚未针对类似问题测试上述设计,但如果以后可能会看到一些正在进行的活动,我将尝试将结果发布。