C# SqlException:INSERT语句与外键约束冲突。冲突发生在数据库表列中
我想保存另一个表中的id_ats和id_ex记录,但我总是得到错误外键约束。请帮帮我 控制器:C# SqlException:INSERT语句与外键约束冲突。冲突发生在数据库表列中,c#,asp.net-mvc,C#,Asp.net Mvc,我想保存另一个表中的id_ats和id_ex记录,但我总是得到错误外键约束。请帮帮我 控制器: [HttpPost]
[HttpPost]
public ActionResult SaveRecord(IEnumerable<exercises> model)
{
foreach (var item in model)
{
ex_op dbitem = new ex_op();
if (db.ex_op.Any(x => x.id_test == item.Id))
{
dbitem = db.ex_op.Where(x => x.id_test == item.Id).FirstOrDefault();
dbitem.id_test = item.Id;
dbitem.id_ats = item.IdAts;
dbitem.id_ex = item.IdExercises;
dbitem.start_test = item.StartTest;
dbitem.end_test = item.EndTest;
dbitem.best_time = item.BestTime;
dbitem.performance = item.performance;
dbitem.status = item.status;
dbitem.comment = item.comment;
db.Entry(dbitem).State = EntityState.Modified;
}
else
{
dbitem.id_test = item.Id;
dbitem.id_ats = item.IdAts;
dbitem.id_ex = item.IdExercises;
dbitem.start_test = item.StartTest;
dbitem.end_test = item.EndTest;
dbitem.best_time = item.BestTime;
dbitem.performance = item.performance;
dbitem.status = item.status;
dbitem.comment = item.comment;
db.ex_op.Add(dbitem);
}
db.SaveChanges();
}
return RedirectToAction("Index", new { msg = "Sukses" });
}
[HttpPost]
公共操作结果保存记录(IEnumerable模型)
{
foreach(模型中的var项目)
{
ex_op dbitem=新的ex_op();
if(db.ex_op.Any(x=>x.id_test==item.id))
{
dbitem=db.ex_op.Where(x=>x.id_test==item.id).FirstOrDefault();
dbitem.id_test=item.id;
dbitem.id_ats=item.IdAts;
dbitem.id_ex=item.IdExercises;
dbitem.start\u test=item.StartTest;
dbitem.end_test=item.EndTest;
dbitem.best_time=item.BestTime;
dbitem.performance=item.performance;
dbitem.status=item.status;
dbitem.comment=item.comment;
db.Entry(dbitem).State=EntityState.Modified;
}
其他的
{
dbitem.id_test=item.id;
dbitem.id_ats=item.IdAts;
dbitem.id_ex=item.IdExercises;
dbitem.start\u test=item.StartTest;
dbitem.end_test=item.EndTest;
dbitem.best_time=item.BestTime;
dbitem.performance=item.performance;
dbitem.status=item.status;
dbitem.comment=item.comment;
db.ex_op.Add(数据库项);
}
db.SaveChanges();
}
返回重定向操作(“Index”,new{msg=“Sukses”});
}
通常出现外键约束错误时,问题是用于更新或插入的ID在相关表中不存在
例如,如果一个盒子(BoxTable)有苹果(AppleTable),而苹果表格有一个指向盒子表格的外键,则必须存在一个盒子才能创建或插入苹果。
如果您使用的id在box表中不存在,则会出现外键约束错误。您好,Ayu,欢迎使用堆栈溢出。为了帮助解决这个问题,我们可能需要更多关于您的模式和数据的信息。我还建议对代码进行格式化,以便于阅读;现在真的很难理解。值得注意的是,外键约束旨在确保数据完整性,如果您违反了该约束,则完全可以预料会抛出错误。您应该评估的问题是,哪些字段具有外键约束,并且您插入的值是否满足该约束?您好,Jeremy,谢谢您的回答。我希望根据op_ats列中的ID和detail_ex列中的ID保存记录,它们将保存到table ex_op中的1个表中。因此,我在数据库中创建了获取数据ID op_ats和ID detail_ex的关系,然后运行应用程序i get error,如下所示。但是当我删除关系表时,我没有得到错误,但是ID op_ats和ID detail_ex不能保存到表ex_op中