如何从具有父类引用的类中获取记录?
Posted
技术标签:
【中文标题】如何从具有父类引用的类中获取记录?【英文标题】:How to fetch records from a class which has parent class reference? 【发布时间】:2015-02-23 10:27:43 【问题描述】:我是 CoreData 结构的新手,我有两个类,一个是“Person.h
”,另一个是“Education.h
”,它与Person
> Education`有一对多关系。
这是每个类的属性,
Person.h
personID (unique) Number
pName String
pAge Number
educations Set
这里,p代表人
教育.h
educationID (unique) Number
eName String
eState Number
eStarted String
eCompleted String
eCenterName String
eBy Person
这里的e代表教育
好的,现在我想获取一个人的(全部/部分)教育详细信息。我已经成功地在两个类中插入了正确输入的记录。如何完成这项工作?有什么建议吗?请考虑我进行更正,即使此流程对您来说不清楚(或错误)。
谢谢,
哈吉尔
【问题讨论】:
Person 中应该有一个属性指向 Education 对象的 NSSet。然后要访问所有教育详细信息,您只需使用一个人的获取请求并使用该属性来检索教育详细信息。例如:somePerson.educationTypes
【参考方案1】:
通常,您会在 Person
上拥有指向 Education
实体的核心数据关系,配置为多对多。然后,一旦您有了Person
的实例,您只需像查找任何属性的值一样查找该关系的值。您可以取回零个或多个相关 Education
实例的集合,而无需进行额外的提取。
您在Education
上的eBy
关系表明您正在考虑这一点,就好像您正在使用SQL。使用 Core Data,在具有该关系的实体上定义一对多关系是很正常的(实际上,eBy
应该真正具有反向关系)。
【讨论】:
感谢您的回复。是的,你是对的,我忘记在我的问题中添加该集合,请参阅更新的问题。拥有inverse relationship
有什么好处?
如果您已经拥有educations
关系,您在这个问题中要问什么?当您拥有Person
的实例时,您可以使用该关系获得相关的Education
详细信息。您需要做哪些模型尚未做的事情?以上是关于如何从具有父类引用的类中获取记录?的主要内容,如果未能解决你的问题,请参考以下文章