2012-08-07 169 views
1

我有一个数据模型设置与三个实体,课程,学生,TestScores。NSPredicate查询父母和孩子

他们太多的关系链接是这样的:

Course <---->> Student <---->> TestScores 

所以课程会有几个学生,谁又将可以有多个TestScores(或没有测试成绩)

课程实体有一个Name属性。 TestScores是一个简单的实体,它只包含一个testScore int属性。

我希望能够获得至少一个textScore为100的学生数组,按课程名称排序。这可能与NSPredicate?

回答

2

我想你可以有你的谓语

ANY testScores.score == 100 

然后把它一起在为获取请求:

NSFetchRequest *req = [NSFetchRequest fetchRequestForEntityNamed:@"Student"]; 
req.predicate = [NSPredicate predicateWithFormat:@"ANY testScores.score == 100"]; 
req.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"course.name" ascending:YES]];