我有两个实体
第一个 -
{
"ID": 5777,
"Name": "",
"EventID": 18341,
"ParentID": 19702,
"LastModifiedDate": "2016-11-30 09:36:04",
"EntityType": 3,
"InstanceID": 916787
}
2d one
{
"ID": 19702,
"Name": "Google",
"EventID": 18341,
"ParentID": 0,
"LastModifiedDate": "2016-12-01 06:20:49",
"EntityType": 0,
"FileAttribute": "",
"InstanceID": 0,
"IsFile": false,
"ResourceURL": "http://www.google.com",
"Taxonomies": "0",
"ViewCount": 2
}
现在需要使用" ID"从第二个获取是" ParentID"第一个使用核心数据。
MySql query will "SELECT * FROM "tbl_two" WHERE `ID` IN ( SELECT `ParentID` FROM "tbl_ONE" WHERE `InstanceID` = '916787' AND `EventID` = '18341')
答案 0 :(得分:0)
第一步是停止考虑核心数据,就像它的SQL 一样。它有一个不同的API,用SQL术语思考会导致你的设计很差。
一般而言,不要考虑记录,考虑可能在应用程序中使用的对象以及这些对象如何相互关联。不使用外键将一个记录与另一个记录相关联,而是使用对象属性将一个对象与另一个对象相关联。
从我的SQL查询中可以看出,你需要像
这样的东西Resource
(您的第一个样本)和ResourceMapping
(您的第二个样本)。Resource
有一个名为mapping
的属性,类型为ResourceMapping
。我认为相当于你的SQL查询:
Resource
获取NSPredicate
(第一个示例)的单个实例。mapping
(或您所称的任何内容)的值,并且您将从另一个实体获取相关对象。除此之外,Apple提供了extensive, detailed documentation with code samples,这将有所帮助。