我的核心数据(适用于iPhone)的典型模型包括部门和员工(部门 - >>员工)。
我不想在每次加载时加载部门的所有员工,所以我想我会将Employee创建为一个获取的财产。我以为我可以像这样定义一些谓词:
employee.deparmentId = department.departmentId
但我不能(使用Xcode图形编辑器)。
现在,阅读一些帖子,我倾向于为部门与员工(及其反向)定义一个关系,并使用它。
我的问题是:懒人加载的关系是多少?或者,每次创建(检索)部门列表时,它是否会在“数据库”中加载我的所有员工?
提前致谢 Gonso
答案 0 :(得分:15)
不,默认情况下,懒惰加载与多对多关系相关的对象。但是,如果每次获取部门时都需要访问其中的许多部分,那么出于性能原因,您可能会要求Core Data同时加载它们(这称为预取)。你可以这样做:
[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"employees", nil]];