核心数据:谓有序关系中的第一个元素
我有这至多包含至less一个元素的关系:
Appointment <<------>> Invitee
appointment.invitees
是导致NSOrderedSet
的有序关系 。
在由读取结果控制器控制的表视图中,列出了约会,以及被邀请者集合的第一个元素。
现在我想用被邀请者的名字来search这个列表,使用NSPredicate
。 但是如何引用谓词中有序列表的第一个元素呢?
我试过了:
fetchRequest.predicate = [NSPredicate predicateWithFormat: @"invitees[FIRST].lastName CONTAINS[cd] %@", searchTerm];
但是我得到了unimplemented SQL generation for predicate
错误。 这是有道理的,因为结果是一个集合,但不是一个严格的数组。 不过,我认为sqlite商店必须build模的顺序,所以它应该是可检索的。
有什么build议?
显然,这个问题甚至连最专业的核心数据公司都不能回答。
解决方法是将第一个元素build模为单独的一对一关系,其余为基于相同相关实体的可选多对多关系。
Appointment <<------> mainInvitee (Invitee) <<------>> additionalInvitees (Invitee)