gpt4 book ai didi

c# - 从约束引用表中删除行

转载 作者:太空宇宙 更新时间:2023-11-03 13:01:33 25 4
gpt4 key购买 nike

我正在尝试从表 (NewClubProspect) 中删除一个对象,该对象在名为 NewClubProspectNewClubEmail 的表中具有引用行

我得到的错误是

        The DELETE statement conflicted with the 
REFERENCE constrain
"FK_dbo.NewClubProspectNewClubEmail_dbo.NewClubProspect_NewClubProspect_Id"

The conflict occurred in database
"Reporting", table "dbo.NewClubProspectNewClubEmail", column 'NewClubProspect_Id'.
The statement has been terminated.

引用表如下所示: enter image description here

我可以通过这种方式解决问题,但不想直接使用 SQL。为简洁起见,我删除了 try/catches:

  //Delete out of the reference table first         
var sql = "delete from NewClubProspectNewClubEmail where NewClubProspect_Id = @p0";
var r = ReportingDBTasks.Query(sql,prospect.Id);

//Delete the parent object
db.NewClubProspects.Remove(prospect);
db.SaveChanges();

如何使用 EF 而不是直接 SQL 从引用表中删除?

谢谢

最佳答案

最简单的方法是在约束上启用级联删除。但我想级联被关闭是有原因的,所以我很确定你仍然必须以老式的方式执行此操作并删除每个级联。

假设你有一个导航属性,它应该是这样的:

foreach(var nce in prospect.NewClubEmails)
db.NewClubProspectNewClubEmails.Remove(nce);

db.NewClubProspects.Remove(prospect);
db.SaveChanges();

关于c# - 从约束引用表中删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123576/

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