大家好我可爱的社区,希望大家都过得好。
我想知道你有没有发现你自己需要在核心数据中使用多个合并策略。因此使用多个NSManagedObjectContext。就像下面的例子:
让我们假设我们有两个实体,并且两个实体都有一个约束。但是您希望以不同的方式处理这些约束。例如,在一个实体中,您不希望覆盖,但在另一个实体中,您希望用缓存覆盖存储,或者在另一个实体中,您只是希望引发一个错误。
那么,您遵循的是什么方法?
示例:第一天数据库中有20000辆汽车。第二天应用程序获取1000辆新车。但假设其中5辆已经在数据库中,我们不想更新它们(mergeByPropertyStoreTrumpMergePolicyType)。因此,当我们批量创建/插入995辆汽车时,将插入数据库。(总共20995辆)
假设数据库中有200个人员,应用程序从后端获取10个新人员。这10个人员中有5个已经在我们的数据库中(相同的人员ID)。但在这种情况下,我们希望覆盖数据库中的人员。因此,当我们批量创建/插入10个人员时,其中5个将被覆盖。(总共205个)(mergeByPropertyObjectTrumpMergePolicyType)
1条答案
按热度按时间gtlvzcf81#
使用两种不同的上下文是可以的,如果这对你有用的话。还有一些其他的可能性:
NSMergePolicy
并实现resolve(optimisticLockingConflicts list: [NSMergeConflict])
来构建您自己的自定义合并策略。然后您的自定义合并代码可以用不同的方式合并不同的实体。关于这方面的文档非常少,但前面的答案可能会有所帮助。这是我更愿意做的,但第一种方法编写起来会更快。