0

私は2つのエンティティを持っています。1 つはドライバーで、もう 1 つは車です。

ドライバーは複数の車を持つことができますが、車は 1 人のドライバーしか持つことができません。

これは逆の関係であり、両側でオプションです。

ドライバーを削除すると、車は「孤立」します まだ存在しますが、関連するドライバーはもうありません。

ドライバーがいなくなったら車を破壊してほしい。これは論理的に意味をなさないかもしれませんが、これは学習課題です。

cars エンティティ内のリレーションシップのオプションのチェックボックスをオフにします。これは、車が存在するためにはドライバーが必要であることを意味すると思います。

ドライバー オブジェクトを削除すると、コンテキストを保存できません。このエラーが表示されます。

「操作を完了できませんでした。(Cocoa エラー 1570。)」 UserInfo=0xc586430 {NSValidationErrorObject= (エンティティ: 車; id: 0xc580d30 ; データ: { ドライバー = nil; メーカー = A; モデル = B; 年 = 222; }))

両方の関係がオプションであるのに、なぜこれが機能するのですか?しかし、関係を変更すると、機能しなくなりますか?

4

2 に答える 2

1

ドライバー -> 車の関係を削除時にカスケードに設定してみませんか? 操作が失敗する理由は、車なしでドライバー オブジェクトを作成しようとした場合と同じです (関係が必須の場合)、検証が失敗します。

于 2013-10-11T04:29:05.013 に答える
0

わかりました..オプションまたはオプションではないことに関係する必要はありませんでした。車にはドライバーが必要になるようにしています。次に、ドライバーを削除しますが、ドライバーがいない状態で車が残っているため、ルールに違反します。

関連する車が削除されるように、削除ルールをカスケードに設定する必要があります。

于 2013-10-11T04:29:09.757 に答える