假设我有两个实体:课堂和学生。课堂与学生有很多关系。每个学生都有一辆车(hascar是1)或者没有(hascar是0)
我想在Classroom上创建几个获取的属性:
绊倒我的是语法。如何构建一个检查特定教室中所有学生的谓词?
谢谢!
答案 0 :(得分:3)
您不需要获取或获取属性来检查与特定教室相关的所有学生,因为该关系会自动找到学生。
ClassRoom{
roomNumber:number
teacher:string
students<-->>Student.classroom
}
Student{
name:string
classroom<<-->ClassRoom.students.
}
假设您有一个特定的ClassRoom对象aClassRoom。键aClassRoom.students返回所有相关Student对象的NSSet。您需要做的就是使用集合运算符来获取所需的信息。
学生人数很简单:
NSNumber *studentCount=[aClassRoom.students valueForKeyPath:@"@count"];
有车的学生人数:
NSPredicate *p=[NSPredicate predicateWithFormat:@"hasCar==1"];
NSNumber *withCars=[[aClassRoom.students filteredSetUsingPredicate:p] valueForKeyPath:@"@count"];
如果你有一段关系,你就不需要一个获取来找到关系中的对象。