2013-04-29 86 views
0

我想获得来自不同实体的数据联合。我有许多实体(不同种类的标签,例如位置,事件等),我希望显示“所有标签”(即所有标签实体的联合)的表格视图的数据。如何使用核心数据为这种用例制作提取请求?核心数据联合查询等效

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

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

回答

0

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

,除非你喜欢的实体“联盟”具有相同的基类,在你的模型(比NSManagedObject等)。

因此,如果您的所有实体都继承自名为Tag的基类,则您可以将它们全部取出。

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

在你的情况下,这可能是不可行的,因为例如'Person'和'Location'之间没有真正的连接,或者你可能认为这会导致性能问题。

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