首页 文章

使用魔法记录从核心数据中获取关系实体

提问于
浏览
0

我正在维护一个已经使用魔法记录(https://github.com/magicalpanda/MagicalRecord/wiki)作为核心数据桥接的项目,我想写一个获取函数,但不知道如何 . 以下是要求:

我有实体人和事件 . 一个人可以没有或有很多事件,例如观光,踢足球......在* .xcdatamodelId文件中,Person实体与Event实体(to-many关系)链接 . 在Person实体的属性表中,我看到与Event实体相关的NO属性(是,在Person实体中没有eventId) . 在事件“表”中,也没有personId . 连接Person和Event的唯一事情是已设置的“to-many”关系 .

事件实体具有“类型”属性:Entity.type可以等于“sport”,“leisure”等 . 事件实体也具有“日期”值 .

这就是我想要获取的内容:我想获取至少有一个类型为“sport”的事件的所有Person,并且我还想获得最旧的Entity.date .

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

但是我怎么能用Magical Record做到这一点?

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

NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"Department IN %@", @[dept1, dept2]];
NSArray *people = [Person MR_findAllWithPredicate:peopleFilter];

但在我的情况下,Person没有eventId,Event没有personId,所以这不适用 .

1 回答

  • 0

    最后我得到了解决方案 . 这可以简单地完成如下:

    NSPredicate *peopleFilter = [NSPredicate predicateWithFormat:@"ANY events.eventType contains %@",@"love"];
        NSArray *people = [Person MR_findAllWithPredicate:peopleFilter];
        return people;
    

    (一个人有一系列事件)

相关问题