Core data 基于多实体的核心数据谓词

Core data 基于多实体的核心数据谓词,core-data,join,Core Data,Join,通常,如果您在核心数据中有一对多关系,我理解您应该将其设置为数据模型中的关系。 在这种情况下,由于数据的来源和管理,很难做到这一点 我试图基本上完成一个连接 我想获取一个实体A,它满足A上的一些条件,但也满足B上的条件。代码和另一个属性 select语句将是 select attributeFromA from A, B where A.code = B.code and B.attrib="foo" 有没有一种合理的方法可以在不建立核心数据关系的情况下实现这一点?我只找到了两种解决方案,都不

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

我试图基本上完成一个连接

我想获取一个实体A,它满足A上的一些条件,但也满足B上的条件。代码和另一个属性

select语句将是

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

有没有一种合理的方法可以在不建立核心数据关系的情况下实现这一点?

我只找到了两种解决方案,都不是很好。 据我所知,核心数据不支持对多个实体的查询,除非它们之间存在关系

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

  • 在核心数据之外手动执行联接。在上述情况下,目的是获取匹配的对象标识符集(“代码”)。一种方法是执行单独的查询,然后获取交叉点。将每个查询设置为仅检索“代码”,而不检索托管对象


  • 仅供参考:由于无法通过核心数据关系连接不相关的表,我决定将整个应用程序从核心数据切换到FMDB(sqlite)。此应用程序未实现核心数据的好处。Sqlite可以以更透明的方式提供应用程序所需的内容,与当前的服务器数据库同步机制更紧密地结合在一起。