Core Data: Abstract entities and inheritance relationships

空扰寡人 提交于 2020-02-02 10:27:40

问题


My exact model is complicated to explain, so say that I'm modeling fruits and their seeds in Xcode's Core Data modeler. Here's some "pseudo Core Data code":

abstractEntity Fruit
attribute sweetness
relationship Seed

abstractEntity Seed
attribute shape

concreteEntity Apple inherits Fruit
concreteEntity Orange inherits Fruit

concreteEntity AppleSeed inherits Seed
concreteEntity OrangeSeed inherits Seed

The reason I modeled in this way is that I want to be able to fetch a mix of fruits and sort them by their seed shapes. Given this model, here's my question:

Is there any direct way in the Xcode modeler (i.e., from the GUI) that will enable me to specify that Apples can only have AppleSeeds and Oranges can only have OrangeSeeds? In the model above, concrete fruits inherit an abstract Seed relationship, which I need in order to fetch and sort mixed fruits/seeds, but I don't see any way to enforce the exact Seed relationship that each concrete fruit must have.

I see lots of different ways to enforce this outside of the modeling GUI, but just want to make sure I'm not missing something. Any suggestions?

Hopefully this example makes sense!


回答1:


The only way I can think of is to remove the seed relationship from the superentity and put specific AppleSeed and OrangeSeed relationships in the subentities. You may be able to override the relationship in the subentities without removing it from the superentity but as far as I know there's no way in the model editor to do what you're describing.



来源:https://stackoverflow.com/questions/1474473/core-data-abstract-entities-and-inheritance-relationships

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!