Entity framework 需要ADO.NET实体框架UpdateException的帮助吗

Entity framework 需要ADO.NET实体框架UpdateException的帮助吗,entity-framework,ado.net,entity-relationship,ado.net-entity-data-model,objectcontext,Entity Framework,Ado.net,Entity Relationship,Ado.net Entity Data Model,Objectcontext,我的数据库中有一个联系人表和一个电话表,在电话表中有一列“ContactId”,其中有一个键将电话指向联系人 在服务器的键选项中,我将其删除选项设置为“Cascade” 现在,当我尝试使用上下文删除联系人时: Dim contact As Contact 'The contact I want to delete. Dim context As New Entities 'The ObjectContext. context.DeleteObject(contact) context.SaveC

我的数据库中有一个联系人表和一个电话表,在电话表中有一列“ContactId”,其中有一个键将电话指向联系人

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

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

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的电话记录

现在我知道我可以手动删除所有相关的手机,然后删除联系人,但我正在寻找一种更有效的方法,我希望所有这些都应该自动完成

欢迎提出任何建议和做法


谢谢。

您不需要先手动删除电话记录,但您确实需要加载它们。加载记录后,实体框架将确定要执行的操作


而且,这篇博文也很有趣。讨论了删除引用相关对象的对象的问题。这可能会帮助你了解引擎盖下发生的事情。

嗨,克雷格!你提供的链接非常有用!然而,它没有回答我的问题,或者至少我不理解它。我加载了联系人+手机,当我删除时,我仍然得到异常。你能举个简单的例子吗?非常感谢你!其实很简单:contract.Phones.Load()。如果这不起作用,就说明有些地方不对,我会确保您的映射是正确的。