在我的v1核心数据模型中,我拥有:
Discussion
relation: Image (to-one)
Image
relation: Discussion (to-one)
在v2模型中,我现在有:
FileObject (abstract)
FileMediaObject: parent FileObject (abstract)
relation: DiscussionFileObject (to-one)
DiscussionFileObject: parent FileObject
relation: FileMediaObject (to-one)
ImageMediaObject: parent FileMediaObject
DiscussionFileObject和ImageMediaObject(具体)实体一对一替换了先前的Discussion和Image实体。我正在使用How to refactor a core data model to make two existing entities inherit from a new abstract entity中描述的方法,使用映射模型从v1模型迁移到v2。还具有非关系属性(如下所述),并且似乎正在迁移。
我遇到的问题是迁移关系。例如,所有ImageMediaObject的继承关系(DiscussionFileObject的继承关系)最终都为零,无法从v1模型正确迁移。
关系映射的Value Expression
为:
FUNCTION($manager, "destinationInstancesForSourceRelationshipNamed:sourceInstances:" , "image", $source.image)
关系映射的Value Expression
为:
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "ImageToImageMediaObject", $source.discussion)
建议。