我在与其他两个实体(例如部门和团队)相关的托管对象模型中有一个实体(例如员工)。两种关系都是一对多的(即一个员工必须有一个部门和一个团队,团队和部门有很多员工)。两者可能重叠也可能不重叠(例如,一个团队可能由来自人力资源、会计和 IT 的员工组成,或者它可能仅由一个部门的几名员工组成)。
Department <-->> Employee <<--> Team
我有两个 NSArrayControllers 为两个 NSTableViews、一个 Department 表和一个 Team 表提供数据。员工可以在部门之间和团队之间毫无问题地移动,但我不知道如何删除(解雇)员工。
如果我向任一阵列控制器发送删除消息,则员工将被带出团队(例如)但留在部门中,并且对象图处于不一致状态。即使我在两个控制器上调用删除操作,该对象也不会被删除 - 它是孤立的,只是在边缘徘徊。
最初,我将(员工实体的)部门和团队关系设置为 Nullify 的删除规则,但即使将一个或两个更改为级联也无济于事。
我是否需要覆盖数组控制器上的 remove: 操作以实际删除员工,或者我是否遗漏了一些非常明显的东西?