您如何使用核心数据映射模型映射抽象的关系?

时间:2019-04-20 20:30:32

标签: ios core-data database-migration mapping-model

在我的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模型正确迁移。

以下是映射模型的详细信息: enter image description here

关系映射的Value Expression为:

FUNCTION($manager, "destinationInstancesForSourceRelationshipNamed:sourceInstances:" , "image", $source.image)

enter image description here

关系映射的Value Expression为:

FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "ImageToImageMediaObject", $source.discussion)

建议。

0 个答案:

没有答案