我的数据库中有一个contact表和一个Phone表,在phone表中有一个"ContactId“列,其中的一个键将电话引用到Contact。
在服务器的关键选项中,我将其删除选项设置为“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列被设置为其ID的电话记录。
现在我知道我可以手动删除所有相关的手机,然后删除联系人,但我正在寻找一种更有效的方式,我希望所有这些都应该自动完成。
欢迎任何建议和做法。
谢谢。
发布于 2009-03-27 11:56:33
您不需要先手动删除电话记录,但需要加载它们。一旦加载了记录,实体框架就会找出该做什么。
另外,这篇博文也有a method for deleting objects in the entity framework without retrieving them first。讨论了删除引用了相关对象的对象的问题。它可能会帮助你了解引擎盖下发生的事情。
https://stackoverflow.com/questions/687952
复制相似问题