繁体   English   中英

具有独特约束和关系的核心数据

[英]Core data with unique constraints and relationships-IOS

我有一个核心数据设计,其中包含使用关系的多个表。 我的数据库是SQLite。 对于更新,我从JSON导入数据并使用此方法:

[NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:context]. 

我在核心数据中添加了独特的约束。 如果我更新的是与另一个对象的关系的实体,它将失去连接。

例如:实体“人”包含与“ pet_id”的一对一关系。 如果我更新“宠物”,它将更改其ID,“人”仍指向旧ID,因此它们不再相关。 有办法避免这个问题吗?

我认为这还没有记录。 听起来这是正在发生的事情:

  • 您创建一个新实例。 您的约束意味着该实例与现有实例匹配。 但...
  • 您的新实例对此关系具有nil值。 所以...
  • 关系的现有实例的值将替换为此新的nil值。

为了维持关系,您的新实例必须已经具有该关系的正确值。 您实质上是在要求约束匹配系统忽略新实例中关系值不同的事实,而是接受其他属性的新值。

我认为您的期望是完全合理的,但是对于当前的实现不支持它,我也并不感到惊讶。 我建议向Apple提交有关此问题的错误,并研究基于非约束的方法来保持数据唯一。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM