使用 NSPredicate 获取一对多关系值

Posted

技术标签:

【中文标题】使用 NSPredicate 获取一对多关系值【英文标题】:Fetching one to many relation values using NSPredicate 【发布时间】:2013-02-05 16:41:56 【问题描述】:

我的核心数据模型包含实体部门和员工之间的多对多关系(部门-->>员工)。我需要获取两个日期之间员工加入日期的所有部门。

如何为此设置谓词???

谢谢……

【问题讨论】:

我不会认为这是重复的,特别是因为另一个问题不清楚并且没有一个答案被接受。 【参考方案1】:

我认为你需要一个 SUBQUERY:

[NSPredicate predicateWithFormat:@"SUBQUERY(employees, $e, $e.joinDate >= %@ AND $e.jointDate >= %@).@count > 0",
     fromDate, toDate]

employeesDepartmentEmployee 的一对多关系。

(请参阅“NSExpression 类参考”中的expressionForSubquery:usingIteratorVariable:predicate:,其中记录了类似的问题和 SUBQUERY 解决方案)。

【讨论】:

以上是关于使用 NSPredicate 获取一对多关系值的主要内容,如果未能解决你的问题,请参考以下文章

NSPredicate,使用一对多关系的子集获取结果

NSPredicate:“添加”一对多关系CoreData中所有实体的属性值

NSPredicate 用于从一对多关系中获取项目,不包括特定的相关实体

如何根据多对关系集是不是包含特定值使用 NSPredicate 进行过滤

在一对多关系中使用 NSPredicate 进行过滤

CoreData 获取所有一对多关系