【问题标题】:Need help with ADO.NET Entity Framework UpdateException需要 ADO.NET 实体框架 UpdateException 的帮助
【发布时间】:2009-03-27 22:55:50
【问题描述】:

我的数据库中有一个联系人表和一个电话表,在电话表中有一个“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。

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

欢迎任何建议和做法。

谢谢。

【问题讨论】:

    标签: entity-framework ado.net entity-relationship ado.net-entity-data-model objectcontext


    【解决方案1】:

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

    另外,这篇博文有a method for deleting objects in the entity framework without retrieving them first。讨论了删除引用相关对象的对象的问题。它可能会帮助您了解引擎盖下发生的事情。

    【讨论】:

    • 嗨克雷格!您提供的链接非常有帮助!但是,它没有回答我的问题,或者至少我不明白。我加载了联系人+电话,当我删除时,我仍然遇到异常。你能发布一个简短的例子吗?非常感谢!
    • 真的就是这么简单:contract.Phones.Load()。如果这不起作用,则说明有问题,我会确保您的映射是正确的。
    猜你喜欢
    • 2019-07-18
    • 2021-11-16
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 2010-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多