(I had a lot of trouble puzzling your predicate, so take this with salt.)
I think you make it too complicated. You have to simplify with keys. Each EntityB has one relationship to EntityC, so to find EntityB objects all you have to do is check EntityB.entityCRelationshipName.entityCAttribute. So something like:
ALL B.EntityC.name like %@
In any case (if I read the predicate correctly):
SUBQUERY($B.EntityC, $EntityC, $EntityC.name like %@)
can return only one object instead of a collection. Therefore, the predicate cannot perform the calculation. This means your error message.
I suggest using the predicate editor in the data model editor to hash the predicates before saving them.
source
share