核心数据:对象图问题
Posted
技术标签:
【中文标题】核心数据:对象图问题【英文标题】:Core Data : object graph problem 【发布时间】:2011-06-12 20:34:05 【问题描述】:我对 Core Data 有疑问。这种情况会出现问题:
-I have two entities, for instance "Department" and "Employee".
-A to-many relationship from "Department" to "Employee"
当我生成模型时,会生成两个类:“部门”和“员工”。 “部门”类有一个员工的“NSSet”,感谢对多关系。
在代码中,我创建了两个“部门”实例 (d1, d2) 和一个“员工”实例 (e1)。 我希望 e1 实例可以在 d1 和 d2 中(通过关系)。所以我做了类似的事情:
[d1 addEmployeeObject:e1 ];
[d2 addEmployeeObject:e1 ];
问题是,当我重新启动应用程序时,d1 中不再存在 e1(仅在 d2 中)。似乎 core-data 自动从 d1 中删除了 e1。但我不想要那个!!!
根据核心数据documentation,这似乎是适当的行为(阅读上面链接中的操作关系和对象图完整性一章)。
如何防止这种行为?有什么想法吗?
感谢阅读, 真的希望我已经清楚了。
【问题讨论】:
【参考方案1】:建立一个称为 Departments 的反向关系,即从 Employee 到 Department 的一对多关系。
将“Departments”的倒数标记为“Employees”,其中“Employees”是从部门到员工的一对多。
当您生成类时,您应该看到 Department 有一个 NSSet *employees,而 Employee 有一个 NSSet *departments。
【讨论】:
是的,这就是我这样做和工作的原因。确实,这是解决方案;)谢谢;)以上是关于核心数据:对象图问题的主要内容,如果未能解决你的问题,请参考以下文章