我可以在 Core Data 中获取关系数据吗

Posted

技术标签:

【中文标题】我可以在 Core Data 中获取关系数据吗【英文标题】:Can I fetch relationship's data in Core Data 【发布时间】:2013-06-11 09:49:11 【问题描述】:

我可以在Core Data中获取关系数据吗? 关系是一对多的。

例如:我有 2 个实体(部门和员工)。部门是一对多的员工关系,员工是一对一的部门关系。我想获得部门实体的员工。我可以使用 fetch 函数来获取数据吗?

提前致谢。

【问题讨论】:

“可可”不是“可可” 【参考方案1】:

您可以只使用关系属性来获取部门的员工集:

Department *theDepartment = ...; // your department
NSSet *employeesInDepartment = theDepartment.employees; // set of Employee objects

或者,如果你需要一个数组:

NSArray *employeesInDepartment = [theDepartment.employees allObjects];

或者,您可以使用以下获取请求:

Department *theDepartment = ...; // your department
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"department = %@", theDepartment];
[request setPredicate:predicate];

NSError *error;
NSArray *employees = [yourManagedObjectContext executeFetchRequest:request error:&error];

【讨论】:

你的意思是。我只能使用部门(NSManagedObject)来获取员工(NSSet)的数据。对吗? 感谢您的帮助,马丁

以上是关于我可以在 Core Data 中获取关系数据吗的主要内容,如果未能解决你的问题,请参考以下文章

Core Data 可以在 iOS 上延迟获取 BLOB 属性吗?

Core Data 获取关系对象

Core Data 关系可以是它自己的逆关系吗?

我可以避免在 EF Core 中使用迁移吗?

对于我的多对多关系,Core Data 获取速度非常慢?

在 Core Data 中有效地获取一对多关系中的最新记录