我有一个使用关系的多个表的核心数据设计。我的数据库是SQLite。对于更新,我从JSON导入数据并使用此方法:
[NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:context].
我在核心数据中添加了唯一约束。 如果我更新一个与另一个对象关系的实体,它将失去连接。
Ex:包含与“pet_id”的一对一关系的实体“person”。如果我更新“宠物”它会改变他的身份,“人”仍指向旧身份证,所以他们不再相关。 有没有办法避免这个问题?
答案 0 :(得分:1)
我认为这在任何地方都没有记录。这就是发生的事情:
要维护关系,您的新实例需要已具有该关系的正确值。您基本上要求约束匹配系统忽略新实例中关系值不同的事实,但接受其他属性的新值。
我认为你所期待的是完全合理但我对目前的实施不支持它并不感到惊讶。我建议向Apple提交有关此问题的错误,并调查基于非约束的方法以保持数据的唯一性。