核心数据谓词基于多个实体

时间:2012-09-26 14:31:45

标签: core-data join

通常,如果您在Core Data中有1对多的关系,我理解您应该将其设置为数据模型中的关系。 在这种情况下,由于数据的来源和管理,很难做到。

我正在尝试基本上完成加入。

我想获取符合A上某些条件的实体A,但也符合B.code和其他属性的标准。​​

select语句将是

select attributeFromA from A, B where A.code = B.code and B.attrib="foo"

如果没有在核心数据中建立关系,是否有合理的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

我只发现了两种解决方案,但都不是很好。 根据我的阅读,Core Data不支持针对多个实体的查询,除非它们之间存在关系。

  1. 无论如何添加关系。由于数据来自服务器,因此这可能特别糟糕。从服务器单独更新每个表时,无法轻松维护关系。需要在数据更改时重新创建关系。

  2. 在Core Data外部手动执行连接。在上面的例子中,目的是获得匹配的对象标识符集('code')。一种方法是执行单独的查询然后获取交集。将每个查询设置为仅检索“代码”,而不是托管对象。