DELETE语句与REFERENCE约束"FK_Claims_Patients"冲突

Uma*_*ena 3 c# foreign-keys sql-server-2008

我正试图从我的网站TABLE中删除一个"人",但我收到错误,写在帖子的标题,错误指向我这个代码:

Patient patient = db.Patients.Single(p => p.Patient id == id);
db.Patients.Remove(patient);
db.SaveChanges();
return RedirectToAction("Index");
Run Code Online (Sandbox Code Playgroud)

或者,如果可能的话,我如何添加例外,所以当我点击删除按钮时,它会打开另一个页面并告诉我,我没有删除该人的权利.

有任何想法吗?

Chr*_*ler 11

您需要删除引用该患者的所有声明.实现此目的的一种方法是向外键约束添加级联删除,但是,我不知道您正在使用哪个DBMS.

错误消息似乎暗示SQL Server,所以这里是SQL Server的一些信息 - 级联参照完整性约束

要根据您的情况修复此问题,您需要执行DROP CONSTRAINT,然后执行ADD CONSTAINT.

ALTER TABLE dbo.Claims
   DROP CONSTRAINT FK_Claims_Patients

ALTER TABLE dbo.Claims
   ADD CONSTRAINT FK_Claims_Patients
   FOREIGN KEY (PatientId) REFERENCES dbo.Patients(PatientId) ON DELETE CASCADE
Run Code Online (Sandbox Code Playgroud)