假设我有3个核心数据实体:患者,治疗,事件,患者可以拥有许多事件对象,而这些对象又有一个治疗对象。
所以,这段代码是有效的:
NSSet *events = patient.events;
NSSet *events = therapeut.events;
Therapeut *therapeut = event.therapeut;
Patient *patient = event.patient
现在,我希望检索给定患者和给定治疗的所有事件。这是否可能没有对数据库执行获取请求?我发现往返是昂贵的,我已经掌握了给定的治疗和给定的患者。
这可能吗?
答案 0 :(得分:0)
如果它们具有反向多个属性,则可以遍历patient.events
并检查事件是否具有给定的治疗
NSMutableArray *matches = [NSMutableArray array];
for(Event *event in patient.events) {
if(event.therapeut == my_therapeut)
[matches addObject event];
}
这仍然涉及对所有患者事件的迭代,但它比新的提取更有效
如果您只有治疗标识符,可以使用:
[event.therapeaut.identifier isEqual:<identifier> ];