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分钟内",但将其用作票务系统而不是博客。据我所知,我一直在一行一行地跟踪他。

如有任何帮助,我们将不胜感激。谢谢

INSERT语句与FOREIGN KEY冲突

假设您的每个响应都以某种方式与票证相关联,那么您也需要在代码中这样做!

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都不关联),而这显然在您的数据库中不起作用。