INSERT语句与FOREIGN KEY冲突
本文关键字:KEY 冲突 FOREIGN 语句 INSERT | 更新日期: 2023-09-27 18:21:35
我已经启动了这个"支持票证"项目,用户可以创建票证,管理员和用户都可以响应。我是MVC3的新手。我自己解决了大多数问题,但我花了大约5个小时搜索Google/Stackoverflow,我就是想不通。。。所以我来找专家。
这是错误:
INSERT语句与FOREIGN KEY约束冲突"FK_Reponses_Tickets1"。数据库中发生冲突"C:''USERS''ME''DOCUMENTS''visualstudio2010''PROJECTS''TICKETSYSTEM''sticketsystem''APP_DATA''TICKETSYSTEM.MDF",表"dbo.Tickets",列"ID"。
来源错误:
Line 21: response.Body = body;
Line 22: model.AddToReponses(response);
Line 23: model.SaveChanges();
Line 24: return RedirectToAction("Ticket", new { id = id });
Line 25: }
以下是完整的控制器操作:
public ActionResult Responses(int id, string body)
{
Ticket ticket = GetTicket(id);
Response response = new Response();
response.Body = body;
model.AddToReponses(response);
model.SaveChanges();
return RedirectToAction("Ticket", new { id = id });
}
对于那些想知道的人,我一直在遵循matthewblagden(YouTube)的教程"从零到博客在100分钟内",但将其用作票务系统而不是博客。据我所知,我一直在一行一行地跟踪他。
如有任何帮助,我们将不胜感激。谢谢
假设您的每个响应都以某种方式与票证相关联,那么您也需要在代码中这样做!
public ActionResult Responses(int id, string body)
{
// get the ticket
Ticket ticket = GetTicket(id);
// create resposne
Response response = new Response();
response.Body = body;
// *** BEGIN NEW SECTION ***
// here, you need to ASSOCIATE your response to the ticket you're retrieved!
response.Ticket = ticket; // or something like that......
// or maybe:
response.TicketId = ticket.Id; // or something like that......
// *** END NEW SECTION ***
model.AddToReponses(response);
model.SaveChanges();
return RedirectToAction("Ticket", new { id = id });
}
现在,您有独立的响应(与任何Ticket
都不关联),而这显然在您的数据库中不起作用。