如何使用实体关系来获取数组的计数差异

Posted

技术标签:

【中文标题】如何使用实体关系来获取数组的计数差异【英文标题】:How to use entity relationship to get count difference of arrays 【发布时间】:2014-10-08 14:28:50 【问题描述】:

假设我有实体部门和角色的数据模型,关系为Department<-->>Role。在我的 UI 中,我当前显示了部门 1,并在表格视图中列出了其他部门(例如部门 2、部门 3...)。

我正在尝试获取一堆数组:每个部门的每个角色一个。我可以通过 fetchrequest 和谓词获取显示的部门 1 的角色数组,但无法弄清楚如何为表格视图中的每个部门获取角色数组。非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

首先,您不需要数组。核心数据最好由NSFetchedResultsController 管理——这对表格视图最有效。此外,您很可能不需要任何获取请求。

要获取部门中的所有角色,只需调用您的关系名称:

department1.roles

结果是一个未排序的NSSet。您可以订购它,例如像这样按字母顺序排列

department1.roles.sortedArrayUsingSortDescriptors(
 [NSSortDescriptor(key: "name" ascending: true)]
)

如果您想在表格部分显示部门并在行中显示角色,您可以使用NSFetchedResultsController 来获取指定sectionNameKeyPathRole 实体,以指示部门(例如名称)。

【讨论】:

以上是关于如何使用实体关系来获取数组的计数差异的主要内容,如果未能解决你的问题,请参考以下文章

如何使用实体框架获取记录计数匹配谓词

如何创建儿童计数的索引视图

核心数据获取:按关系计数排序

获取核心数据中一对多关系的计数

使用计数和连接从休眠的实体中获取行

Hibernate:我如何编写 HQL 来获取实体的记录,而没有记录其识别关系