我在应用程序中使用 Azure 移动服务进行离线同步。我正在 CoreData 中同步多个表,这些表之间具有关系 ID。
我想知道是否有解决方案可以通过在 CoreData 上使用 Azure 移动服务与多个表进行联接来获取数据。
也许我错过了一些东西,但我不明白如何与核心数据中的 Azure 移动服务建立关系
我的情况是我有一个可以有多个类别的对象。这些对象中有很多可以具有相同的类别,也可以有多个类别。
假设我有三个表:Category、Category_Object 和 Object
我想获取包含特定类别的所有对象。
谢谢。
更新
目前,这是公认的答案,直到有人发现有一天移动服务 SDK 可以在核心数据中创建关系
最佳答案
我假设 Azure 移动服务 Category
和 Object
表都有一个唯一的 ID,例如 categoryID
和 objectID
> 分别,并且 Category_Object
表也有一个唯一的 ID,例如 linkID
以及 categoryID
和 objectID
列.
根据该设置,我将在 CoreData 中创建三个实体:Category
、Object
和 Category_Object
,并为它们提供与您的 Azure 匹配的属性移动服务表。然后定义它们之间的关系:
Category 与 Category_Object 具有一对多关系,例如
对象
,以及一对一的逆关系,category
。同样,Object 与 Category_Object 具有一对多关系,例如
categories
,并具有一对一的逆关系,object
。
首先将 Category
和 Object
表与 CoreData 同步,然后同步 Category_Object
表。使用该表中的 categoryID
和 objectID
列来获取正确的 Category
和 Object
。然后填充关系:
newCategory_Object.category = fetchedCategory
newCategory_Object.object = fetchedObject
newCategory_Object.linkID = linkIDfromTable
从那时起,在您的应用中,您可以使用关系来确定哪些对象
属于哪个类别
;无需担心连接表的问题。
请注意,如果 Category_Object 表除了 categoryID
和 objectID
之外没有其他列,那么理论上您可以省去 Category_Object
实体CoreData,并且直接具有从 Category
到 Object
的多对多关系。但我认为这将使同步变得更加复杂。
关于ios - 通过加入 iOS 中的 Azure 移动服务发出获取请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34093731/