如何删除关系中的所有子实体?
Posted
技术标签:
【中文标题】如何删除关系中的所有子实体?【英文标题】:How to delete all child entities in a relationship? 【发布时间】:2012-09-04 22:49:43 【问题描述】:我正在开发一个聊天应用程序,但我不太了解我应该使用什么关系。这是设置:
/ Folder 1 \
Account > Mailbox >- Folder 2 - > Message
\ Folder 3 /
如您所见,我将收到很多消息,但其他实体中只有一个。我应该在这里设置什么关系,以便在删除 Account
时,它也会删除所有后续内容?当然,当一条消息被删除时,它不应该删除该帐户。想法?
【问题讨论】:
见:***.com/questions/2124022/… 【参考方案1】:在您项目的数据模型中,您只需对受影响的关系设置正确的“删除规则”。
在这种情况下,听起来您正在寻找“级联”删除规则。如果您要选择您的邮箱实体,然后选择它与邮件的关系,并将该关系的删除规则设置为“级联” - 这将导致当父(在本例中为邮箱)为时删除子关系删除。
您绝对应该查看Core Data Programming Guide,它可以让您深入了解每个不同的删除规则设置的确切作用(我个人认为名称非常明显,但仍然值得查看)。
【讨论】:
关系恢复怎么样,也会级联吗? 因为关系是在两个方向上定义的(例如,您的父级与其子级有关系,而反向关系是从子级到父级)。您可以对任一关系设置规则。在这种情况下,您将在父级与子级的关系上设置“级联”,在子级与其父级的关系上设置“无操作”。以上是关于如何删除关系中的所有子实体?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 @ManyToMany 关系中删除与 JPA 和 Hibernate 中的许多子对象的子对象
使用.Net Entity Framework 问题删除具有子关系的实体