首页 文章

如何使用Core Data中多个实体的属性获取属性值?

提问于
浏览
0

我有三个像这样的实体 .

雇员:
ID
名称

EmployeeDepartment:
ID
DepartmentID的
员工ID

部门:
ID
名称

员工<< ----> EmployeeDepartment <---- >>系

假设员工和部门有多对多关系,我想在"Accounting"部门获得所有员工姓名?
如果我使用SQL查询,我将简单地使用:
select employee.name from Employee, EmployeeDepartment, Department where employee.id = employeeDepartment.employeeID and Department.id = EmployeeDepartment.departmentID and Department.name = 'Accounting'

但是,我如何在Core Data中做同样的事情?

1 回答

  • 0

    核心数据是一个对象图管理器,而不是关系数据库,所以试图强制它进入关系数据库模式将导致痛苦 . 您的EmployeeDepartment实体就是一个很好的例子;您需要在关系数据库中实现Employee和Department之间的多对多关系,但在Core Data中根本没有必要 . 相反,只需为Employee提供 departments 属性,为Department提供 employees 属性,然后在两个实体之间添加多对多关系 .

    现在,如果要获取Accounting中的所有员工,则可以使用与Accounting匹配的谓词执行实体Department的获取请求 . 拥有该对象后,您只需访问其 employees 属性即可获取员工列表 .

相关问题