【问题标题】:CoreData Swift 3 - How to join two Entities?CoreData Swift 3 - 如何加入两个实体?
【发布时间】:2016-10-17 10:26:04
【问题描述】:

我有两个实体“CAR”和“COLOUR”。

在“颜色”中,我有两个属性。

  1. 身份证
  2. 姓名

在“CAR”中,我有三个属性。

  1. 身份证
  2. colorId
  3. 车名

“COLOUR”的 ID 与“CAR”中的 colourId 相关。

请任何人帮我写一个谓词来生成一种颜色下的汽车数组?

【问题讨论】:

  • 您需要在COLOURCAR 之间创建relationship。不要只添加colourID。否则,您首先需要两个查询来从给定的COLOUR 中获取 COLOUR-id,然后从 COLOUR-id 中获取 CAR

标签: ios core-data swift3 nspredicate


【解决方案1】:

不要这样做。使用外键是您在数据库中所做的事情。 CoreData 不是数据库。

在数据模型中,在汽车中创建一个名为“color”的关系并将其类型设置为color

然后在颜色中创建一个名为cars 的“多”关系并将其类型设置为car

现在您在Car 中有一个名为color 的属性,它将包含颜色对象。

Color 中的一个属性称为cars,它将是具有该颜色的所有Cars 的集合。

【讨论】:

  • 好的,我将如何编写获取关系的提取谓词?
  • @DevidasMDas 你不需要。只需获取car,然后获取颜色使用...car.color。或者,如果您想获取特定颜色的所有汽车,请获取 color 并使用 color.cars。没有必要加入任何东西。只需使用关系属性。
  • @DevidasMDas 您也可以像这样为Car 创建一个获取谓词...例如color.id == 1。然后,这将获取 color 属性的 id 属性为 1 的所有汽车。或 color.name == "blue",这将执行相同的操作。
猜你喜欢
  • 2023-04-02
  • 1970-01-01
  • 2012-11-09
  • 1970-01-01
  • 2017-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-18
相关资源
最近更新 更多