我的模型中有两个实体,A
和B
。 A
与B
具有多对多关系,其反向是与A
之间的一对一关系。我想使用B
获取实体A
的结果,如下所示:
A
执行获取请求。B
和这些过滤器。B
的所有有效结果。当然我可以做(1)然后使用第二个谓词过滤B
的数组。但是我知道这不是最理想的。
如果使用单个提取和谓词,我怎样才能最有效地完成这项工作?
答案 0 :(得分:1)
不幸的是,我不确定你在问什么。如果你提供更多详细信息肯定会有所帮助。
所以,我只需要猜测......请记住,获取请求只能返回一种类型的实体。所以,如果你想要关系中很多方面的东西,那就去获取它。
您可以在谓词中使用'dot'表示法......我也可能会向后搜索...
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Employee"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"department.name like 'Support'"];
从部门到员工之间存在一对多的关系。以上内容抓住了属于名称中具有“支持”的部门的所有员工。
答案 1 :(得分:1)
如果您已经持有A的实例,只需通过A的访问者访问相关的B实例。
如果你需要直接获取与特定A相关的所有B(在这种情况下你不是),你将为B实体构建一个获取请求,其中一个谓词基于(反向)关系Bs到A.(具体语法取决于反向关系名称,以及该反转是一对一还是多对。)