J'ai un schéma assez simple. Essentiellement, exécuter < -> Données (où une exécution contient une donnée, par exemple, la température, échantillonnée à partir d'une sorte de capteur). Maintenant, il semble que les capteurs peuvent avoir plus d'une mesure (par exemple, la température et l'humidité). Ainsi, une seule exécution peut avoir plusieurs échantillons de données.Utilisation de modèles de mappage pour migrer entre des modèles d'objets de données principaux
Par conséquent, exécutez < - >> Échantillon et échantillon-> Données. Si je crée un nouveau modèle de mappage, les choses fonctionnent généralement, sauf qu'aucun nouvel échantillon n'est créé, aucune relation n'établie entre les deux. Courses et échantillons ni entre échantillons et données.
Je suis en train d'obtenir le modèle de cartographie pour migrer mon modèle, mais le moindre changement au modèle de cartographie généré des résultats en erreur Cocoa 134110.
Par exemple, si je prends la cartographie « Sample » (qui n'a pas Source) et définissez sa Source sur 'Run' (afin que je puisse définir la relation inverse de Sample 'run' de manière appropriée) puis le mapping change son nom en 'RunToSample'. Deux relations sont gérées dans ce mappage: données et exécution. La propriété de données se règle automatiquement à
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "DataToData", $source.dataSet)
Suivant cet exemple, je mis la propriété de l'exécution pour
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToRun", $source)
De même, je mets la cartographie de propriété « échantillon » dans RunToRun à
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToSample", $source)
et la propriété 'sample' en DataToData à
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToSample", $source.run)
Alors, quoi, je me demande, ne va pas? J'ai essayé diverses permutations, telles que laisser les relations «inverses» non spécifiées. Mais je continue d'avoir la même erreur (134110) malgré tout. J'imagine que c'est beaucoup plus facile qu'il n'y paraît et qu'il me manque un morceau fondamental mais mineur. J'ai également essayé de sous-classer NSEntityMigrationPolicy et de surcharger -createDestinationInstancesForSourceInstance: mais ces efforts ont rencontré à peu près les mêmes résultats.
Merci d'avance pour tout pointeur ou conseil (pertinent :-). Edit: Pour simplifier, j'ai marqué toutes les relations comme optionnelles. Bien que, finalement, je puisse choisir autrement.
Hi! J'apprends à migrer. À quelle classe appartient le deuxième bloc de code (dans votre réponse)? Avez-vous sous-classe 'NS ... quelque chose? Comment spécifiez-vous le modèle de mappage pour utiliser cette sous-classe? Merci! – Colas