2

我有两个实体,父母和孩子。Parent 实体与名为“children”的 Child 具有一对多关系。Child 有一个名为“childName”的字符串属性。

我想在 Parent 上创建一个获取的属性,我们称之为“specialChild”,它返回一个具有特定名称的 Child,我们说“Special”。当我访问 fetched 属性时,以下谓词返回一个空集:

  • children.childName == "特别"
  • SUBQUERY(儿童, $eachChild, $eachChild.childName = "Special").@count > 0
  • SUBQUERY(children, $eachChild, ANY $eachChild.childName = "Special").@count > 0

我相信我以某种方式弄乱了谓词,因为我对它们仍然很缺乏经验。(我可以从 Apple 找到关于“SUBQUERY”的零文档)我应该如何在 Parent 的 fetched 属性谓词中指定“childName 为 Special 的孩子”?

是的,我正在调用 -refreshObject:mergeChanges: 但我仍然收到一个空结果。是的,目标实体是 Child。

数据模型的可视化描述

4

1 回答 1

2

你想要的是parent==$FETCH_SOURCE AND childName=="Special". 这会得到任何“特殊”的对象以及查找其特殊子对象的对象ChildchildNameparent

获取的属性谓词中的属性必须存在于目标实体上。这里的目的地是Child,所以你不能使用children,因为它只存在于Parent

如果您在代码中编写谓词,则该$FETCH_SOURCE部分对应于您将使用的位置。self没有它,您将获得每个特殊的孩子,而不仅仅是那些依附于原始Parent. 它说,parent孩子的属性必须是查找获取的属性值的特定实例。

于 2013-01-03T23:51:21.440 回答