我有一个相当简单的架构。本质上,运行 <--> 数据(其中运行包含从某种传感器采样的数据,例如温度)。
现在,传感器似乎可以进行不止一种测量(例如,温度和湿度)。因此,一次运行可能有多个数据样本。
因此,运行 <-->> 样本和样本 <--> 数据。(为了简单起见,我暂时将 Run <--> Data 留在原处。)
如果我创建了一个新的映射模型,那么事情通常会起作用 - 除了没有创建新的样本,运行和样本之间以及样本和数据之间没有建立任何关系。
我正在尝试使用映射模型来迁移我的模型,但即使对生成的映射模型进行最轻微的更改也会导致 Cocoa 错误 134110。
例如,如果我采用“Sample”映射(没有 Source)并将其 Source 设置为“Run”(以便我可以适当地设置 Sample 的反向关系“run”),则映射将其名称更改为“RunToSample”。此映射中处理了两种关系:数据和运行。数据属性自动设置为
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "DataToData", $source.dataSet)
按照此示例,我将运行属性设置为
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToRun", $source)
同样,我将 RunToRun 中的“示例”属性映射设置为
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToSample", $source)
和 DataToData 中的“样本”属性
FUNCTION($manager, "destinationInstancesForEntityMappingNamed:sourceInstances:" , "RunToSample", $source.run)
那么,我想知道,出了什么问题?我尝试了各种排列,例如未指定“反向”关系。但是无论如何,我都会继续收到相同的错误(134110)。
我想这比看起来要容易得多,而且我缺少一些基本但次要的部分。我也尝试过继承 NSEntityMigrationPolicy 并覆盖 -createDestinationInstancesForSourceInstance: 但这些努力得到了大致相同的结果。
提前感谢您的任何指示或(相关的:-)建议。
编辑:为简单起见,我已将所有关系标记为可选。虽然,最终,我可能会选择其他方式。