Как к правильно управляемым объектам каскадного удаления в Базовых Данных?

У меня есть Базовая Модель данных, которая имеет три объекта: A, B, и C. Связи "один ко многим" с B и B имеет many-many отношения с C. Удалить правило для-> B является "Каскадом", и B-> A не является "Никаким Действием". Удалить правило для B-> C не является "Никаким Действием", и C-> B, "Отклоняют".

Я испытываю затруднения при выполнении удаления на объект. То, что я хочу произойти, следующее:

  1. Я удаляю экземпляр (использование deleteObject:)
  2. Удаление распространяет к любому B, связанному с (из-за "Каскада", удаляют правило),
  3. Весь B, связанный с A, удален
  4. Любые отношения, принадлежащие C, связанные B которого были удалены, также удалены

Это может немного сбивать с толку, таким образом позвольте мне перефразировать: Когда A удален, удалите, все связали B. И любые C, которые ссылаются на те B, не должны больше ссылаться на них.

В моем тестировании я не вижу, что "Каскад" удаляет работу правила для меня вообще. Когда я удаляю A, я вызываю processPendingChanges сразу впоследствии (только для проверки удаление было сделано). Затем я сравниваю число A и B, которые были в NSManagedObjectContext перед удалением, и после него. Экземпляр A был правильно удален, (число общего A теперь меньше, чем перед удалением). Однако число B остается тем же. Так, кажется, что "Каскад" удаляет правило, не соблюдается.

Я знаю, что могу вручную пройти-> B отношения, и вручную удалять каждый B. Однако кажется, что это - что-то, что Базовые Данные обеспечивают бесплатно, таким образом, я не хочу делать это, если Базовые Данные не недостаточны. Любая информация относительно использования "Cascade" удаляет правила, приветствуется.

15
задан Brian Tompsett - 汤莱恩 6 July 2015 в 11:25
поделиться

1 ответ

[1118344-

Я, конечно, нет не основных экспертов данных, но чтение документации в различных вариантах правила удаления , мне кажется, что вы хотите, чтобы B -> C отношения с быть Nullify , а не без действия . Возможно, BS не уходит, потому что CS все еще держит их ссылки на них?

16
ответ дан 1 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: