0

我有两个实体。一个是司机,一个是汽车

一个司机可以有很多辆车,一辆汽车只能有一个司机。

这是一个反向关系,并且在双方都是可选的。

当我删除一个驱动程序时,这辆车是“孤儿”它仍然存在,但不再有任何相关的驱动程序。

我希望汽车在司机不存在时被销毁。这可能没有逻辑意义,但这是一个学习练习。

我取消选中汽车实体内关系的可选复选框。我认为这意味着汽车必须有司机才能存在。

当我删除我的驱动程序对象时,它无法保存上下文。我收到此错误。

“操作无法完成。(Cocoa 错误 1570。)” UserInfo=0xc586430 {NSValidationErrorObject= (entity: Cars; id: 0xc580d30; data: { driver = nil; make = A; model = B; year = 222; })

当两种关系都是可选的时,为什么这会起作用..但是一旦我改变了关系,它就不再起作用了?

4

2 回答 2

1

为什么不在删除时将您的驱动程序 -> 汽车关系设置为 Cascade?您的操作失败的原因与您尝试创建没有汽车的驱动程序对象时发生的情况相同(如果关系是强制性的),验证失败。

于 2013-10-11T04:29:05.013 回答
0

好的..它与可选或非可选无关。我这样做是为了让汽车必须有司机。然后我删除了司机,但这违反了规则,因为这辆车没有司机。

删除规则必须设置为级联,以便删除相关汽车。

于 2013-10-11T04:29:09.757 回答