2009-09-19 48 views
5

我有核心數據(用於iPhone)與部門和職位(部門 - >>員工)的典型模型。核心數據對多關係。他們是懶惰的負載?

我不想在每次加載時都加載部門的所有員工,所以我想我會創建Employee作爲提取屬性。我想我可以這樣定義一些謂詞:

employee.deparmentId = department.departmentId 

但我不能(用Xcode圖形編輯器)。

現在,閱讀一些帖子,我傾向於定義一個部門之間的僱員關係(及其相反)並使用它。

我的問題是:是多關係懶加載?或者每次創建(檢索)部門列表時,是否會在「數據庫」中加載所有員工?

在此先感謝 Gonso

回答

14

沒有,對象相關的默認延遲加載的一對多和一對一的關係。但是,如果每次訪問Department時都需要訪問其中的很多,則出於性能方面的原因,您可能會要求Core Data同時加載它們(這稱爲預取)。你可以這樣做如下:相反

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

,我不希望加載的員工,除非我要去與他們合作。更重要的是,大多數時候我不會列出所有empoyees(即遍歷Set)但是獲得一個子集(即運行一個獲取)。 謝謝。 – gonso 2009-09-19 15:47:01