【问题标题】:core data do all relation objects get deleted too when deleting an entity's objects删除实体对象时,核心数据是否也会删除所有关系对象
【发布时间】:2013-07-05 13:09:21
【问题描述】:

在核心数据中,当删除实体的对象时,所有关系对象也会被删除 有另一个实体详细信息具有一对多关系。我需要删除它的对象还是下面的代码来处理它? 到目前为止我的代码:

 NSFetchRequest * allClients = [[NSFetchRequest alloc] init];
[allClients setEntity:[NSEntityDescription entityForName:@"Client" inManagedObjectContext:[NSManagedObjectContext defaultContext]]];
[allClients setIncludesPropertyValues:NO]; //only fetch the managedObjectID

NSError * error = nil;
NSArray * clients = [[NSManagedObjectContext defaultContext] executeFetchRequest:allClients error:&error];
//error handling goes here
for (NSManagedObject * client in clients) {
    [[NSManagedObjectContext defaultContext] deleteObject:client];
}

NSError *saveError = nil;
[[NSManagedObjectContext defaultContext] save:&saveError];
//more error handling here

【问题讨论】:

    标签: ios core-data nsmanagedobjectcontext


    【解决方案1】:

    这取决于您配置了哪些设置。对于每个关系,您可以将其设置为:

    1. 什么都不做
    2. 级联(也删除其他项)
    3. 无效
    4. 拒绝(不允许删除)

    您为模型中的每个关系(以及每个关系的两端)指定此项。

    【讨论】:

    • hmmmm 你认为推荐的选项是什么...我在考虑级联
    • 通常是级联和无效的组合。什么是正确的 100% 取决于您的数据模型...
    猜你喜欢
    • 2017-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-09-13
    • 1970-01-01
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多