我有两个表oldaddress
和newaddress
common field personID
。我还必须从中获取personID
详细newaddress
信息oldaddress
。如何在核心数据中设置相同的实体和谓词?
等效查询是
select a.personID from new address a, oldaddress b where a.personID=b.personID
我有两个表oldaddress
和newaddress
common field personID
。我还必须从中获取personID
详细newaddress
信息oldaddress
。如何在核心数据中设置相同的实体和谓词?
等效查询是
select a.personID from new address a, oldaddress b where a.personID=b.personID
你还没有掌握 Core Data 的精髓。正如 Martin R 所指出的,它是一个对象图,而不是数据库。
您所描述的是一个连接表操作,它通过所谓的关系在 Core Data 中建模,消除了对诸如personID
.
此外,创建代表同一种对象的不同身份也是不好的做法。
因此,您的模型应如下所示:
Address <<------>> User
并且Address
应该有一个布尔属性,如isOld
.
User
获取s时,您的谓词变得非常简单。
[NSPredicate predicateWithFormat:@"addresses.@count = 2"];
或者,如果您愿意,可以有两个从User
to的一对多关系。Address
User.oldAddress <<-----------> Address
User.newAddress <<-----------> Address
像这样的谓词
[NSPredicate predicateWithFormat:@"oldAddress != NULL && newAddress != NULL"]