0

次のオブジェクトの削除を処理するにはどうすればよいですか? デリート ルールはどのように表示されますか?

私のオブジェクトグラフは次のようになります。

ボス

  • Boss-Department には多対多の関係があります
  • ボスが削除された場合、そのボスに属する部門は削除されません(ただし、このボスとの関係は削除されます)。

デパートメント

  • Department-Employee には多対多の関係があります
  • 課長は多対多の関係にある
  • 部門が削除された場合、その部門に属する従業員は、他の部門との関係がない場合は削除する必要があります

従業員

  • Employee-Department には多対多の関係があります
  • 従業員が直接削除されることはありません (部門の削除のみ)。ああ幸せな人生!
4

1 に答える 1

0

この状況では、オブジェクトの削除ルールは次のように処理する必要があります

ボス-部門 -> 無効化

部門-従業員 -> 拒否

部門ボス -> 無効化

これは、Appleが削除ルールを次のように説明しているものです

拒否: リレーション先に少なくとも 1 つのオブジェクトがある場合、ソース オブジェクトは削除できません。たとえば、部門を削除したい場合、その部門のすべての従業員が最初に別の場所に移動 (または解雇) されていることを確認する必要があります。そうしないと、部門を削除できません。

Nullify: 宛先のオブジェクトの逆関係を null に設定します。たとえば、部門を削除する場合は、現在のすべてのメンバーの部門を null に設定します。これは、従業員の部門関係がオプションの場合、または次の保存操作の前に各従業員に新しい部門を確実に設定する場合にのみ意味があります。

カスケード: リレーション先のオブジェクトを削除します。たとえば、部門を削除する場合は、その部門のすべての従業員を同時に解雇します。

アクションなし: リレーション先のオブジェクトに対して何もしません。たとえば、ある部門を削除する場合、従業員がその部門に属していると信じている場合でも、すべての従業員をそのままにしておきます。

詳細については、CoreData プログラミング ガイドを参照してください。

于 2012-02-07T01:31:30.463 に答える