【问题标题】:Core data predicate based on multiple entitites基于多个实体的核心数据谓词
【发布时间】:2012-09-26 14:31:45
【问题描述】:

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

我正在尝试从本质上完成一个连接。

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

选择语句将是

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

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

【问题讨论】:

    标签: core-data join


    【解决方案1】:

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

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

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

    【讨论】:

    • 仅供参考:由于无法通过 Core Data 关系连接不相关的表,我决定将整个应用程序从 Core Data 切换到 FMDB (sqlite)。这个应用程序没有实现 Core Data 的好处。 Sqlite 可以以更透明的方式提供应用所需的内容,与当前的服务器数据库同步机制更接近。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多