coreData 中的关系如何工作
Posted
技术标签:
【中文标题】coreData 中的关系如何工作【英文标题】:How relationship works in coreData 【发布时间】:2015-09-23 03:27:37 【问题描述】:我知道如何在 coredata 中创建关系,但我不知道它是如何工作的。
例如:
员工: 姓名 身份证
部门: 名字
我可以在'Department'和'Employee'之间创建一个关系(一对多),当我获取'Department'时,我也会自动获取员工。
如果没有关系,我将在部门中创建一个字段(employeeId),并加入'Employee'表。
我不知道 coredata 如何通过关系获取正确的员工。
谢谢
【问题讨论】:
【参考方案1】:您可以从真正的 sqlite 文件中探索实体是什么。
例如 我有这种关系
当我添加三个记录时,我使用 SliteBrowser 查看 SQLite 文件 它有五张桌子
ZDEPARTMENT 表 ZEMPLOYEE 表
注意我在ZEMPLOYEE中选择了什么,它保存了ZDEPARTMENT中department
的id,所以核心数据关系是如何工作的很清楚。
注意:
Z_PK 在 SQLite 表中是唯一的 Z_ENT 是它们的实体 ID,与 Z_PRIMARYKEY 表中列出的 ID 相同【讨论】:
那么coredata会自动为每个实体生成Z_PK,当我们创建关系时,它会添加一个字段(外键)并自动插入值? 是的,核心数据会为您处理关系,您只需要专注于OO编程。您可以在文档中找到更多详细信息。developer.apple.com/library/prerelease/tvos/documentation/Cocoa/…【参考方案2】:您可以在 NSFetchRequest 中使用 NSPredicate 获取正确的员工。 NSPredicate 类似于数据库中使用的 where 子句。 请检查:Use NSPredicate in CoreData Fetch 和NSPredicate in CoreData
希望对你有帮助。
【讨论】:
以上是关于coreData 中的关系如何工作的主要内容,如果未能解决你的问题,请参考以下文章