Как получить значения свойств, используя атрибут из нескольких объектов в Core Data? - PullRequest
0 голосов
/ 03 августа 2011

У меня есть три таких объекта.

Сотрудник:
id
имя

EmployeeDepartment:
id
DepartmentID
employeeID

Отдел:
id
имя

Сотрудник << ----> EmployeeDepartment <---- >> Отдел

предположим, что сотрудник и отдел имеетОтношения «многие ко многим», я хочу получить имена всех сотрудников в отделе «Бухгалтерия»?
Если я использую SQL-запрос, я просто буду использовать:
выберите employee.name из Employee, EmployeeDepartment, Department, где employee.id = employeeDepartment.employeeID и Department.id = EmployeeDepartment.departmentID и Department.name= 'Бухгалтерский учет'

Однако, как я могу сделать то же самое в Базовых данных?

1 Ответ

0 голосов
/ 03 августа 2011

Core Data - это менеджер объектных графов, а не реляционная база данных, поэтому попытка перевести его в режим реляционной БД приведет к боли.Ваша организация EmployeeDepartment является прекрасным примером этого;он нужен в реляционной БД для реализации отношений «многие ко многим» между сотрудником и отделом, но в базовых данных это вообще не нужно.Вместо этого просто присвойте Employee свойство departments и свойству Department employees, а затем добавьте ко многим отношениям между этими двумя объектами.

Теперь, если вы хотите, чтобы все сотрудники в Учетевыполнить запрос на выборку для сущности Department с предикатом, соответствующим Account.Получив этот объект, вы можете просто получить доступ к его свойству employees, чтобы получить список сотрудников.

...