2009-09-19 30 views
5

Tôi có mô hình điển hình trong Dữ liệu cốt lõi (dành cho iPhone) với các Phòng ban và Nhân viên (Vụ - >> Nhân viên).Dữ liệu cốt lõi cho nhiều mối quan hệ. Họ có tải trọng không?

Tôi không muốn tải tất cả nhân viên của một bộ phận mỗi khi tôi tải nó, vì vậy tôi nghĩ tôi sẽ tạo Nhân viên làm Thuộc tính được tìm nạp. Tôi nghĩ rằng tôi có thể xác định một số Predicate như thế này:

employee.deparmentId = department.departmentId 

nhưng tôi không thể (với trình chỉnh sửa đồ họa Xcode).

Bây giờ, đọc một số bài đăng, Im nghiêng để xác định mối quan hệ với nhiều người cho Bộ nhân viên (và ngược lại) và sử dụng nó.

Câu hỏi của tôi là: Mối quan hệ với nhiều người đang tải Lazy? hoặc là nó sẽ tải tất cả nhân viên của tôi trong "cơ sở dữ liệu" mỗi khi tôi tạo (lấy) một danh sách các phòng ban?

Cảm ơn trước Gonso

Trả lời

14

Không, các đối tượng liên quan đến to-nhiều và to-one mối quan hệ được nạp uể oải theo mặc định. Tuy nhiên, nếu bạn cần truy cập nhiều người trong số họ mỗi lần bạn tìm một Bộ, thì vì lý do hiệu suất, bạn có thể yêu cầu Core Data tải chúng cùng lúc (điều này được gọi là tìm nạp trước). Bạn có thể thực hiện việc này như sau:

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

ngược lại, tôi KHÔNG muốn tải Nhân viên trừ khi Im sẽ làm việc với họ. Hơn nữa, hầu hết các lần tôi sẽ không liệt kê tất cả các empoyees (tức là chạy qua Set) nhưng nhận được một tập hợp con (ví dụ: chạy tìm nạp). Cảm ơn. – gonso

Các vấn đề liên quan