Core data CoreData多对多关系
如何在CoreData中处理多对多关系? 例如: 我有两个实体-食谱和配料 CoreData将它们链接为食谱和配料。 现在我需要为配方中的每种成分添加属性“Count”。我怎么做Core data CoreData多对多关系,core-data,many-to-many,Core Data,Many To Many,如何在CoreData中处理多对多关系? 例如: 我有两个实体-食谱和配料 CoreData将它们链接为食谱和配料。 现在我需要为配方中的每种成分添加属性“Count”。我怎么做 感谢核心数据为您提供了对象图一致性维护。因此,如果您使用SQLite存储,核心数据会自动为您创建多对多关系的中间联接表。在您的情况下,您应该显式地创建一个中间(“连接”)实体。中间实体的一个优点是,您还可以使用它向 关系,例如“IngreditInfo”实体可能包括“计数”列。所以你的模型应该是这样的:Recipe>I
感谢核心数据为您提供了对象图一致性维护。因此,如果您使用SQLite存储,核心数据会自动为您创建多对多关系的中间联接表。在您的情况下,您应该显式地创建一个中间(“连接”)实体。中间实体的一个优点是,您还可以使用它向
关系,例如“IngreditInfo”实体可能包括“计数”列。所以你的模型应该是这样的:Recipe>IngredientInfo你说的“我需要为每种成分添加属性“Count”是什么意思?”?这是否意味着您要添加新的NSAttributedDescription,或只是用新值更新此属性?@MarkKryzhanouski Recipes有3列:名称、拇指图像、配料有2列:名称、配方、配料、配料。现在我需要添加“计数”列(某些配方中某些配料的计数)我想应该是
IngredientInfo@Mark谢谢!这就是我想要的need@Mark当我选择一些配方时,我应该如何获得配料集及其计数?@MarkKryzhanouski如果我不创建IngredentInfo,那么是否可以从两侧更新实体?@msmq如果您不自己创建中间联接表,那么只需在配方配料之间建立多对多关系即可在CoreData model builder中具有相应名称成分/配方的实体,并通过双方的关系属性进行访问。示例recipe.Components或Component.recipes。希望它是清楚的。
for (IngredientInfo* ingredientInfo in recipe.ingredientInfos) {
Ingredient* ingredient = ingredientInfo.ingredient;
NSNumber* count = ingredientInfo.count;
}
NSSet* ingredients = [recipe valueForKeyPath:@"ingredientInfo.ingredient"];