INSERT语句与FOREIGN KEY冲突

时间:2012-01-27 21:46:06

标签: c# asp.net-mvc-3

我已经开始了这个"支持票"用户可以创建票证的项目,管理员和用户都可以响应。我对MVC3很新。我自己解决了大多数问题,但是我花了大约5个小时来搜索Google / Stackoverflow并且我无法弄清楚...所以我来找专家。

这是错误:

  

INSERT语句与FOREIGN KEY约束冲突   " FK_Reponses_Tickets1&#34 ;.冲突发生在数据库中   " C:\ USERS \ ME \ DOCUMENTS \ VISUAL STUDIO   2010 \项目\ TICKETSYSTEM \ TICKETSYSTEM \ APP_DATA \ TICKETSYSTEM.MDF&#34 ;,   table" dbo.Tickets",column' 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)的“从零到一百分钟的博客”教程,但是将其用作票务系统而不是博客。正如我所知,我一直跟着他。

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:3)

假设您的每个回复都以某种方式与故障单相关联,您也需要在代码中执行此操作!

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无关) - 这显然不适用于您的数据库。