2

我有这种包含至少一个元素的多对多关系:

Appointment <<------>> Invitee

appointment.invitees是一个有序的关系,导致NSOrderedSet.

在一个由获取结果控制器控制的表格视图中,我列出了约会以及受邀者集的第一个元素。

现在我想通过被邀请者的名字搜索这个列表,使用NSPredicate. 但是如何在谓词中引用有序列表的第一个元素呢?

我试过:

fetchRequest.predicate = [NSPredicate predicateWithFormat:
       @"invitees[FIRST].lastName CONTAINS[cd] %@", searchTerm];

但我得到了unimplemented SQL generation for predicate错误。这是有道理的,因为结果是一个集合,但严格来说不是一个数组。不过,我认为 sqlite 商店必须对订单进行建模,所以它应该是可检索的。

有什么建议吗?

4

1 回答 1

1

显然,即使是最专业的核心数据专家也无法回答这个问题。

解决方法是将第一个元素建模为单独的一对一关系,将其余元素建模为基于相同相关实体的可选多对多关系。

Appointment <<------>  mainInvitee        (Invitee)
            <<------>> additionalInvitees (Invitee)
于 2012-11-16T19:08:54.380 回答