Удаляет ли базовые данные объекты с каскадными правилами удаления мгновенно или при сохранении? - PullRequest
0 голосов
/ 14 февраля 2011

В модели базовых данных сущность A имеет отношение к сущности B с правилом удаления, установленным на Cascade. Объект B немедленно удаляется при вызове [context deleteObject:A] или Core Data ожидает метод [context save: & error], как это происходит с проверкой объекта?

Мне интересно, смогу ли я после удаления A создать объект C, который затем будет искать B в контексте и устанавливать связь. Это предотвратит удаление B?

Ура, Эрик-Поль.

1 Ответ

2 голосов
/ 14 февраля 2011

«Удалено» - это просто состояние.То, как это состояние сохраняется при сохранении пользователем (или вашим приложением), является подробностью реализации.Его можно отменить после сохранения, если файл не был закрыт и его состояние потеряно.

Если вы хотите переместить экземпляры B экземпляра A в другой экземпляр A, вам нужно изменитьОтношение до вы удаляете первый экземпляр A, иначе каскадное правило возьмет с собой B (согласно точному определению поведения правила).После удаления (напрямую или по каскадному правилу) он удаляется.В результате поиска не будут обнаружены удаленные Bs.

Итак: если вы хотите сохранить B A, присвойте B другой A перед удалением оригинала.В противном случае вам нужно будет создать новые B для нового A.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...