我的数据库中有一个联系人表和一个电话表,电话表中有一列“ContactId”,其中包含将电话引用到联系人的键。

在服务器的关键选项中,我将其删除选项设置为“级联”。

现在,当我尝试使用上下文删除联系人时:

Dim contact As Contact 'The contact I want to delete.
Dim context As New Entities 'The ObjectContext.
context.DeleteObject(contact)
context.SaveChanges()

上面的语句抛出一个 UpdateException,让我知道联系人仍然有电话记录,其 ContactId col 设置为其 ID。

现在我知道我可以手动执行此操作,首先删除所有相关电话,然后删除联系人,但我正在寻找一种更有效的方法,我希望所有这一切都应该自动完成。

欢迎任何建议和做法。

谢谢。

有帮助吗?

解决方案

您不需要先手动删除电话记录,但需要加载它们。加载记录后,实体框架将确定要做什么。

另外,这篇博文还有 一种在实体框架中删除对象而不先检索它们的方法. 。讨论了删除引用相关对象的对象的问题。它可能会帮助您了解幕后发生的事情。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top