如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?

Posted

技术标签:

【中文标题】如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?【英文标题】:How can I create an Entity automatically, which has a one-to-one-not-optional-relationship to the Entity I'm creating? 【发布时间】:2011-01-10 20:01:06 【问题描述】:

如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系:

NSManagedObject *managedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];

我找不到答案。我的解决方法是将关系设置为“可选”。有没有更好的方法来做到这一点?

【问题讨论】:

newEntityDescription 是错误的。您正在创建 NSMananagedObject,而不是 NSEntityDescription 【参考方案1】:

您在创建新实例后设置属性。验证规则(例如关系是否可选等)仅在保存时强制执行,尽管您可以使用某些方法更早地对其进行测试。这意味着您可以创建对象、设置属性和关系,然后保存。所以在这种情况下,你可能想要类似的东西

NSManagedObject *newObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newObject setValue:entity forKey:@"relationship"];
// now the object should be valid when you call save

【讨论】:

以上是关于如何自动创建一个实体,它与我正在创建的实体具有一对一的非可选关系?的主要内容,如果未能解决你的问题,请参考以下文章

涉及新实体和一对多关系的核心数据迁移

NSFetchRequest 具有一对一关系属性 == YES 谓词错误地获取每个实体

如何将DTO映射到多个实体?

iPhone Core Data - 访问具有多种关系的深层属性

将具有一对多关系的 .Net Core 实体映射到 Angular 2 接口

如何基于另一个实体的一对多关系访问 CoreData 实体?