2009-09-19 14 views
5

Ho il modello tipico in Dati principali (per iPhone) con dipartimenti e impiegati (dipartimento - >> impiegato).Dati principali su molte relazioni. Sono pigri carico?

Non voglio caricare tutti i dipendenti di un reparto ogni volta che lo carico, quindi ho pensato di creare il Dipendente come una proprietà recuperata. Ho pensato di definire un Predicato come questo:

employee.deparmentId = department.departmentId 

ma non ho potuto (con l'editor grafico Xcode).

Ora, leggendo alcuni post, sono incline a definire una relazione a-molti per il Dipartimento al Dipendente (e il suo contrario) e usarlo.

La mia domanda è: sono-a molti rapporti Lazy Loading? o caricherà tutti i miei Dipendenti nel "database" ogni volta che creerò (recupererò) un elenco di reparti?

Grazie in anticipo Gonso

risposta

14

No, oggetti legati alla a-molti e a-uno rapporti vengono caricati pigramente per impostazione predefinita. Tuttavia, se è necessario accedere a molti di essi ogni volta che si preleva un dipartimento, per motivi di prestazioni si può chiedere a Core Data di caricarli contemporaneamente (questo è chiamato pre-raccolta). Puoi farlo come segue:

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

al contrario, NON desidero caricare i Dipendenti a meno che non abbia intenzione di lavorare con loro. Inoltre, la maggior parte delle volte non elenco tutti gli empoyees (ad esempio, esegui il set) ma ottieni un sottoinsieme (ad esempio, esegui un recupero). Grazie. – gonso

Problemi correlati