【问题标题】:Getting Error while deleting record in ASP.Net website using Entity Framework使用实体框架在 ASP.Net 网站中删除记录时出错
【发布时间】:2012-12-27 18:27:56
【问题描述】:

我在 Visual Studio 2012 的 asp.net 中使用实体框架。我只是在学习这些东西。我关注了这个tutorial

刚刚创建了网格并运行了网站,除了删除操作之外一切都很好。当我单击删除时,它会显示如下错误:

有人能告诉我为什么会出现此错误以及如何纠正此错误。 . .

提前致谢

【问题讨论】:

  • 第一次在 sql server 上运行 Delete 查询。错误表明他们是关系错误,
  • @satindersingh 在 Sql 服务器中,如果我删除 id '3' 的人,它会完美执行,该行被删除,它在 SQL Server 中工作
  • Delete stmt confilicted with reference constraint **Fk_courseInstructo_person** 这个消息表明他们是主键/外键关系。

标签: asp.net sql-server entity-framework


【解决方案1】:

您的问题的答案在您的教程中给出。 (仅当您使用相同的表和相同的约束时才适用) 在“修改 EntityDataSource 控件标记以提高性能”下

删除按钮也可以使用。对于具有注册日期的行单击删除,该行将消失。 (没有注册日期的行代表教师,您可能会遇到参照完整性错误。在下一个教程中,您将过滤此列表以仅包括学生。)

您收到引用错误意味着您没有在删除操作中使用级联,因此当您删除人员表中的一行时,因为在学生成绩表中引用了同一列。所以删除不会发生。使用级联 - ON DELETE CASCADE。

【讨论】:

  • +1 用于指向教程中的答案。好地方。
【解决方案2】:

好像你想从 CourseInstructor 中删除一个被学校推荐的人。

【讨论】:

    【解决方案3】:

    这是一个非常明确的错误消息,快速 google 可以帮助您更快地解决。

    Table CourseInstructor 与 Table Person 有外键关系。在您的 EF 图中,您可以将其视为一种关系(两个实体之间的一条线)。

    当 CourseInstructor 仍然具有对 Person 的引用时,数据库不允许您删除 Person,因此您需要首先删除相关的 CourseInstructor,最好是作为事务的一部分。

    如果您真的很苦恼,请查看“参照完整性”和“实体框架中的参照完整性”。

    希望这对一些人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 1970-01-01
      相关资源
      最近更新 更多