从多对多关系中获取核心数据

Posted

技术标签:

【中文标题】从多对多关系中获取核心数据【英文标题】:Core Data fetch from many-to-many relationship 【发布时间】:2012-12-03 22:24:50 【问题描述】:

我在编写将根据一对多关系的内容获取数据对象的获取请求时遇到问题。一张桌子用于照片,另一张用于标签。每张照片可以有多个标签,每个标签可以有多张照片。

所以,数据模型是:照片>标签。照片有一个称为“标题”的属性和一个称为“标签”的关系。 Tag 有一个名为“label”的属性和一个名为“taggedPhotos”的关系。我为这两种对象类型创建了子类。 (我正在学习斯坦福 CS193p 课程)。

我想要一个 Photo 实体的获取请求谓词,如果它们的“标签”关系包含给定的标签标签,它将选择照片对象。因此,如果我有一个名为“架构”的标签,我希望与任何以“架构”作为标签之一的照片匹配。

【问题讨论】:

【参考方案1】:

如果我理解你是正确的,我认为谓词应该是:

NSPredicate *predicate = [NSPredicate predicateWithFormat:
@"ANY tags.label LIKE %@", @"searchKey""];

并且确定这是对照片实体的请求。

这里是Apple NSPreciate Documentation了解更多信息

【讨论】:

谢谢。为此,我查看了 Core Data 文档,但没有想到其他地方。 这个答案今天仍然适用。我遇到了一个错误的谓词导致的崩溃——我错过了ANY 关键字。谢谢!

以上是关于从多对多关系中获取核心数据的主要内容,如果未能解决你的问题,请参考以下文章

从多对多关系中获取数据

使用非关联数据 (LINQ) 从多对多关系中获取值

从多对多关系中获取结果

如何在 Laravel 中从多对多关系的一对多关系中获取项目?

使用实体框架从多对多关系中选择数据

从多对多关系的桥接表中检索数据的查询[关闭]