我有这个to-many关系,其中至少包含一个元素:
Appointment <<------>> Invitee
appointment.invitees是一个有序关系,导致NSOrderedSet.
在由获取的结果控制器控制的表视图中,我列出了约会,以及被邀请者集的第一个元素.
现在我想使用NSPredicate按被邀请者的名字搜索此列表.但是如何在谓词中引用有序列表的第一个元素?
我试过了:
fetchRequest.predicate = [NSPredicate predicateWithFormat: @"invitees[FIRST].lastName CONTAINS[cd] %@",searchTerm];
但我得到了未实现的sql生成的谓词错误.这是有道理的,因为结果是一个集合,但不是严格的数组.不过,我认为sqlite商店必须对订单进行建模,因此它应该是可检索的.
任何建议?
解决方法
很明显,这个问题甚至连最专业的核心数据学者也无法回答.
解决方法是将第一个元素建模为单独的一对一关系,将其余元素建模为基于相同相关实体的可选多对多关系.
Appointment <<------> mainInvitee (Invitee) <<------>> additionalInvitees (Invitee)