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

gon*_*nso 6 iphone lazy-loading core-data

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

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

employee.deparmentId = department.departmentId
Run Code Online (Sandbox Code Playgroud)

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

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

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

在此先感谢Gonso

Mas*_*aro 15

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

[fetchRequest setReturnsObjectsAsFaults:NO];
[fetchRequest setRelationshipKeyPathsForPrefetching:[NSArray arrayWithObjects:@"employees", nil]];
Run Code Online (Sandbox Code Playgroud)