gpt4 book ai didi

c# - 从具有多对多关系的实体中删除对象

转载 作者:太空宇宙 更新时间:2023-11-03 20:05:19 24 4
gpt4 key购买 nike

我是 Entity Framework 的新手,所以我需要有关从实体中删除对象的帮助。我有 2 个多对多关系的表和一个在数据库中连接它们的关联表。在模型中只有两个表,关联表由导航属性表示,因为这就是 EF 的工作方式。现在我需要通过 context.EntityName.DeleteObject(object) 从第一个表中删除一个对象,但是当我尝试这样做时,代码失败并出现错误“DELETE 语句与 REFERENCE 约束 FK 冲突。 .",这是从关联表到实体的外键,我尝试删除哪个对象。我想知道如何解决这个问题。你能帮帮我吗?

表格如下:

教师

  • 教师编号
  • 名字
  • 姓氏

时间表详情

  • 时间表详细信息_ID
  • EducationalDiscipline_ID
  • 平日
  • 开始时间
  • 持续时间

和关联表:

TimetableDetailTeachers

  • 教师编号
  • 时间表详细信息_ID

下面是我尝试删除它的方法:

TimetablesEntities context = new TimetablesEntities();

TimetableDetail detail = context.TimetableDetails.SingleOrDefault(td => td.TimetableDetail_ID == timetableDetailId);

context.TimetableDetails.DeleteObject(detail);

context.SaveChanges();

提前致谢!

最佳答案

您只需清除特定TimetableDetailTeachers 列表即可清除关联表。使用您的代码...

TimetablesEntities context = new TimetablesEntities();

TimetableDetail detail = context.TimetableDetails.SingleOrDefault(td => td.TimetableDetail_ID == timetableDetailId);

detail.Teachers.Clear();

context.TimetableDetails.DeleteObject(detail);

context.SaveChanges();

关键行是detail.Teachers.Clear()

关于c# - 从具有多对多关系的实体中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23956535/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com