【问题标题】:Core data delete all relationship entity核心数据删除所有关系实体
【发布时间】:2017-08-12 18:45:53
【问题描述】:

假设我有核心数据和三个实体:部门、员工、库存 所以每个部门都可以有更多的员工,每个员工都可以有更多的物品记录为库存。

Department <--->> Employee <---->> Inventory

现在说,我们有方法(服务,...)可以返回部门的新员工列表。(假设这可能很快发生。)

逻辑是我们删除特定部门的所有Employee实例,然后插入新的。

最好的方法是(对我来说),我可以做这样的事情:

 let employees_local = myDepartment.employees
 if let employees = employees_local {
      myDepartment.removeEmployees(employees)
 }

但这(在我的理解中)只会删除这些对象之间的关系,并不会删除所有这些对象。

我知道删除所有实体的解决方案(删除所有员工) 喜欢:this post,或this one

我什至知道我可以从 ios 9 开始批量删除。 Like here

我的问题是,有没有更快/更好的方法来做到这一点。不应该有办法告诉核心数据删除所有与父级没有关系的对象吗?

【问题讨论】:

  • 怎么样:myDepartment.employees?.forEach(moc.delete)?或者您可以获取所有Employee,过滤并删除它们。

标签: ios swift core-data cascading-deletes batch-delete


【解决方案1】:

使用您在上面查看的示例链接为“this one”。

如果您使用谓词通过检查与部门的关系来过滤员工为 nil,则只会返回您想要的数据项。那我建议你可以全部删除。

【讨论】:

  • 是的,我想过。我正在寻找更简单的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-25
相关资源
最近更新 更多