CoreData 中的逆关系是啥

Posted

技术标签:

【中文标题】CoreData 中的逆关系是啥【英文标题】:What is an inverse relationship in CoreDataCoreData 中的逆关系是什么 【发布时间】:2010-08-04 16:25:17 【问题描述】:

我正在使用 CoreData,但我认为我的反向关系概念并不正确。 任何人都可以解释它是什么吗? 假设我有一个“文件”实体 具有“文件”关系和“父文件”关系

“文件”实体有:

与自身的“文件”(“文件”)是一对多关系。

“parentFile”与自身(“File”)的一对一关系。

这两种关系的反面是什么? 提前致谢。

伊格纳西奥

【问题讨论】:

【参考方案1】:

当您有两个相互指向的不同实体的关系时,“反向”字段是您告诉 XCode 这两个关系“一起”的方式。如果我经营汽车租赁业务,我可能有一个用于我的汽车的实体,它带有一个外键,指示汽车存放在哪个停车场。然后,lots 实体自然会有一对多关系,在关系数据库中,这将通过与汽车的一对一关系相同的连接来完成——不需要额外的密钥。在 Core Data 中,我们(用户)并不真正处理键,因此,Destination、Inverse 和 To-Many 是 Core Data 实现关系所需的输入。此外,这些信息有助于 Core Data 弄清楚当您删除关系一侧或另一侧的对象时该怎么做。

在你的例子中,如果我没看错的话,这两个关系彼此的逆关系。

【讨论】:

【参考方案2】:

说白了:

对多关系files的逆是对一关系parentFile

反之亦然……所以……

一对一关系parentFile的倒数是一对多关系files

【讨论】:

【参考方案3】:

当你有一条连接两个实体的线并且两端都有箭头时,你可以直观地告诉你在 Xcode 的模型视图中存在反向关系。

【讨论】:

以上是关于CoreData 中的逆关系是啥的主要内容,如果未能解决你的问题,请参考以下文章

从 CoreData 关系中获取错误实体的对象

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

在 Core Data 中加载具有关系的托管对象时的标准行为是啥?

coreData 中的关系如何工作

CoreData 不会删除自动生成的关系表中的记录

如何对 CoreData 中的许多关系执行复合查询