我有一个抽象实体:附件,它具有2个简单属性(UUID和字符串)
Attachment {
id: UUID,
type: String
}
和两个继承模型:FileAttachment和MessageAttachment。
文件附件具有一个简单的属性链接。
FileAttachment -> Attachment {
link: URI
}
邮件附件具有一个简单的属性文本和与附件附件的许多关系。
MessageAttachment -> Attachment {
text: String
attachments: [Attachment]
}
当我尝试保存文件附件模型时,它会正确保存。 当我尝试保存邮件附件模型时,大多数情况下它保存不正确。 但是在调用邮件附件的context.save对象之前,它具有正确的数据,而在保存之后,它大部分已破坏了数据。 但是,如果我将关系附件从“邮件附件”移动到“附件”(摘要和父实体),则保存总是可以的。 当我查看已使用核心数据创建的数据库时,发现索引列(例如zattachment)中的ID不正确。
也许听起来很奇怪,但是当我遇到类似情况时,我总是将所有关系从继承实体转移到父实体,然后保存就可以了。
也许您可以解释这个问题?还是我会犯错误?