NSPredicate在多对多关系中计数> 0
我在CoreData中有三个层次的对象:假设实体A有一组实体B,而实体B有一组实体C。 (多对多B和B多对多C)
我想要得到所有的实体A,使得有B和C。 我试图使用一个谓词时提取实体A: NSPredicate(format: "ANY bs.cs.@count > 0")'
但我得到这个错误: Unsupported function expression count: (bs.cs)
任何想法如何正确地写这个查询?
“ANY”运算符不适用于嵌套对多关系,因此您需要一个“SUBQUERY”(不幸的是没有很好的logging)。 像这样的东西应该工作:
NSPredicate(format:"SUBQUERY(bs, $b, $b.cs.@count != 0).@count != 0")
SUBQUERY(..)
部分返回至less有一个相关C
对象的所有相关B
对象。 最后的.@count != 0
部分检查是否至less有一个相关的B
对象具有这个属性。