首页 文章

核心数据与众多关系 . 他们懒惰负载?

提问于
浏览
6

我有核心数据(适用于iPhone)的典型模型,包括部门和员工(部门 - >>员工) .

我不想在每次加载时加载一个部门的所有员工,所以我认为我将Employee创建为一个获取的 property . 我以为我可以像这样定义一些Predicate:

employee.deparmentId = department.departmentId

但我不能(使用Xcode图形编辑器) .

现在,阅读一些帖子,我倾向于为部门与员工(及其反向)定义一个关系,并使用它 .

我的问题是:懒人加载多对多关系?或者,每次创建(检索)部门列表时,它是否会在“数据库”中加载我的所有员工?

在此先感谢Gonso

1 回答

  • 15

    不,默认情况下,懒惰地加载与多对多关系相关的对象 . 但是,如果每次获取部门时都需要访问其中的许多部分,那么出于性能原因,您可能会要求Core Data同时加载它们(这称为预取) . 你可以这样做:

    [fetchRequest setReturnsObjectsAsFaults:NO];
    [fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"employees", nil]];
    

相关问题