Core data 使用神奇记录从核心数据获取关系实体

Core data 使用神奇记录从核心数据获取关系实体,core-data,entity,relationship,fetch,record,Core Data,Entity,Relationship,Fetch,Record,我正在维护一个已经使用magicalrecord()作为核心数据桥接的项目,我想编写一个fetch函数,但不知道如何实现。要求如下: 我有实体人和事件。一个人可以没有或有很多活动,例如观光、踢足球。。。在*.xcdatamodelId文件中,Person实体与事件实体(对多关系)链接。在Person实体的属性表中,我没有看到与事件实体相关的属性(是,Person实体中没有eventId)。在事件“表”中,也没有人形。将人和事件联系起来的唯一一件事是已经设置好的“多人”关系 事件实体具有“类型”属

我正在维护一个已经使用magicalrecord()作为核心数据桥接的项目,我想编写一个fetch函数,但不知道如何实现。要求如下:

我有实体人和事件。一个人可以没有或有很多活动,例如观光、踢足球。。。在*.xcdatamodelId文件中,Person实体与事件实体(对多关系)链接。在Person实体的属性表中,我没有看到与事件实体相关的属性(是,Person实体中没有eventId)。在事件“表”中,也没有人形。将人和事件联系起来的唯一一件事是已经设置好的“多人”关系

事件实体具有“类型”属性:entity.type可以等于“运动”、“休闲”等。事件实体还具有“日期”值

这就是我想要获取的:我想要获取所有至少有一个“sport”类型事件的人,并且我想要获取最早的Entity.date

若它是SQLite,我将连接Person和Entity表,其中Entity.type==“sport”。如果有任何连接记录,那么我将根据Event.date对表进行排序,然后检索第一个记录

但我怎么能用魔法唱片做到这一点呢

Edited:我知道如何设置谓词来搜索Person,例如:

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;
(一个人有一系列事件)