0

我想获得来自不同实体的数据的联合。我有许多实体(不同类型的标签,例如位置、事件等),并且我想要显示“所有标签”(即所有标签实体的联合)的表格视图的数据。对于这种用例,如何使用 Core Data 发出 fetch 请求?

我知道 Core Data 不是 ORM 但如果我上面的解释不够好,我会解释相应的数据库用例。我有不同的表格,例如事件、位置、人员等,我想联合这些不同表格的结果。请记住,UNION 连接的是行而不是列。

一种明显的解决方案是分别从不同实体获取数据,然后将 NSMutableArrays 连接在一起。我想知道是否有更有效的方法。

4

1 回答 1

0

没有办法在提取请求中提取一个以上的实体类型......

除非,您喜欢“联合”的实体在您的模型中具有相同的基类(除了NSManagedObject)。

因此,如果您的所有实体都继承自一个名为Tagexample 的基类,您将能够将所有实体一起获取。

然而,这将为实际数据库文件中的所有这些实体创建一个统一的表(如果类之间的交集很小,则为一个非常稀疏的表)。

在您的情况下,这可能不可行,因为例如“Person”和“Location”之间没有真正的联系,或者您可能认为这会导致性能问题。

另一种解决方案是(如您所建议的)为每个实体创建一个获取请求。

于 2013-04-29T09:42:53.423 回答