我的数据库中有一个联系人表和一个电话表,在电话表中有一列“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,让我知道联系人仍然有PhoneI记录,其ContactId col被设置为其ID。
现在我知道我可以手动完成并删除所有相关手机然后删除联系人,但我正在寻找一种更有效的方式,我希望所有这一切都应该自动完成。
欢迎任何建议和做法。
感谢。
答案 0 :(得分:0)
您无需先手动删除电话记录,但需要加载它们。加载记录后,实体框架将确定要做什么。
此外,此博文还有a method for deleting objects in the entity framework without retrieving them first。讨论了通过引用相关对象来删除对象的问题。它可能会帮助你了解幕后发生的事情。