Swift : 核心数据加入实体
Swift : Core Data join entity
我知道 NSFetchedResultsController 不支持多实体。但我想知道解决下面问题的有效方法是什么。
假设我有两个实体:目录和 selectedProduct。我正在为用户获取所有实体目录,以便他可以 select 一些产品任务是:仅建议目录中不在 selectedproduct.
中的产品
在SQL中会像select * from catalogue where productName not in (select productName from selectedProduct)
。
认为以下谓词应根据您的要求过滤产品:
fetch.predicate = NSPredicate(format:"SUBQUERY(lescourses, $lc, $lc.listedescourses == %@).@count == 0",listdescourses)
我用过 SUBQUERY。理论上它可以用 NONE
或 NOT ANY
来完成,但我有时发现 CD 不能正确解析它们。请注意,根据评论,FRC 将仅观察对 TblProduits
的更改,如果您要修改现有 TblLesCourses
对象以建立与 listdescourses
的关系,则 FRC 不会(除非您重做 performFetch
)认识到不应再包含相关的 TblProduits
对象。
我知道 NSFetchedResultsController 不支持多实体。但我想知道解决下面问题的有效方法是什么。
假设我有两个实体:目录和 selectedProduct。我正在为用户获取所有实体目录,以便他可以 select 一些产品任务是:仅建议目录中不在 selectedproduct.
中的产品在SQL中会像select * from catalogue where productName not in (select productName from selectedProduct)
。
认为以下谓词应根据您的要求过滤产品:
fetch.predicate = NSPredicate(format:"SUBQUERY(lescourses, $lc, $lc.listedescourses == %@).@count == 0",listdescourses)
我用过 SUBQUERY。理论上它可以用 NONE
或 NOT ANY
来完成,但我有时发现 CD 不能正确解析它们。请注意,根据评论,FRC 将仅观察对 TblProduits
的更改,如果您要修改现有 TblLesCourses
对象以建立与 listdescourses
的关系,则 FRC 不会(除非您重做 performFetch
)认识到不应再包含相关的 TblProduits
对象。