Как вы отображаете абстрактные отношения с базовой моделью отображения данных? - PullRequest
0 голосов
/ 20 апреля 2019

В моей базовой модели данных 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 (конкретные) заменяют предыдущиеОбсуждение и изображение сущностей один на один.Я использую метод, описанный в Как провести рефакторинг базовой модели данных, чтобы две существующие сущности унаследовали от новой абстрактной сущности для миграции из модели v1 в v2 с использованием модели отображения.Также есть атрибуты, не относящиеся к отношениям (опишите ниже), и они, похоже, переносятся очень хорошо.

Проблема, с которой я сталкиваюсь, заключается в переносе отношений.Например, все унаследованные отношения ImageMediaObject (DiscussionFileObject) заканчиваются тем, что они равны nil - не переносятся должным образом из модели 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)

Предложения приветствуются.

...