Core data 使用神奇记录从核心数据获取关系实体
我正在维护一个已经使用magicalrecord()作为核心数据桥接的项目,我想编写一个fetch函数,但不知道如何实现。要求如下: 我有实体人和事件。一个人可以没有或有很多活动,例如观光、踢足球。。。在*.xcdatamodelId文件中,Person实体与事件实体(对多关系)链接。在Person实体的属性表中,我没有看到与事件实体相关的属性(是,Person实体中没有eventId)。在事件“表”中,也没有人形。将人和事件联系起来的唯一一件事是已经设置好的“多人”关系 事件实体具有“类型”属性:entity.type可以等于“运动”、“休闲”等。事件实体还具有“日期”值 这就是我想要获取的:我想要获取所有至少有一个“sport”类型事件的人,并且我想要获取最早的Entity.date 若它是SQLite,我将连接Person和Entity表,其中Entity.type==“sport”。如果有任何连接记录,那么我将根据Event.date对表进行排序,然后检索第一个记录 但我怎么能用魔法唱片做到这一点呢 Edited:我知道如何设置谓词来搜索Person,例如:Core data 使用神奇记录从核心数据获取关系实体,core-data,entity,relationship,fetch,record,Core Data,Entity,Relationship,Fetch,Record,我正在维护一个已经使用magicalrecord()作为核心数据桥接的项目,我想编写一个fetch函数,但不知道如何实现。要求如下: 我有实体人和事件。一个人可以没有或有很多活动,例如观光、踢足球。。。在*.xcdatamodelId文件中,Person实体与事件实体(对多关系)链接。在Person实体的属性表中,我没有看到与事件实体相关的属性(是,Person实体中没有eventId)。在事件“表”中,也没有人形。将人和事件联系起来的唯一一件事是已经设置好的“多人”关系 事件实体具有“类型”属
NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"Department IN %@", @[dept1, dept2]];
NSArray *people = [Person MR_findAllWithPredicate:peopleFilter];
但在我的情况下,Person没有eventId,Event没有personId,所以这不适用。最终我得到了解决方案。这可以通过以下简单方式完成:
NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"ANY events.eventType contains %@",@"love"];
NSArray *people = [Person MR_findAllWithPredicate:peopleFilter];
return people;
(一个人有一系列事件)