繁体   English   中英

INSERT语句与FOREIGN KEY约束发生冲突2

[英]The INSERT statement conflicted with the FOREIGN KEY constraint2

INSERT语句与FOREIGN KEY约束“ fk_JOB_POSTING_CLIENT”冲突。 数据库“ ResLand”,表“ dbo.CLIENT”,列“ ID”中发生了冲突。 该语句已终止。

我在职位发布屏幕中插入数据时收到上述异常消息,我的job_posting表数据库设计为:

  INSERT INTO [dbo].[JOB_POSTING]
       ([COMP_ID]
       ,[RES_ID]
       ,[RES_TYPE]
       ,[CONTACT_NAME]
       ,[CONTACT_INFO]
       ,[TITLE]
       ,[DESCR]
       ,[PREREQUISITES]
       ,[SKILLS]
       ,[JOB_TYPE]
       ,[LOCATION]
       ,[DURATION]
       ,[POST_DT]
       ,[POST_END_DT]
       ,[POSITIONS_CNT]
       ,[CLIENT_ID]
       ,[CATEGORY]
       ,[RATE]
       ,[PERKS]
       ,[STAT]
       ,[IS_DELETED]
       ,[CR_BY]
       ,[DT_CR]
       ,[MOD_BY]
       ,[DT_MOD])

在我的控制器中,我编写了如下代码:

    [ValidateInput(false)] 
    //[ValidateAntiForgeryToken]
    [HttpPost]
    public ActionResult PostJob(PostJobModel model, string btn)
    {

        if (btn == "Save")
        {

            JOB_POSTING jobPost = new JOB_POSTING();

            jobPost.RES_ID = RL_Constants.RES_ID;
            jobPost.RES_TYPE = RL_Constants.RES_TYPE;
            jobPost.COMP_ID = RL_Constants.COMP_ID;
            jobPost.POST_DT = Convert.ToDateTime(model.POST_DT);
            jobPost.POST_END_DT = Convert.ToDateTime(model.POST_END_DT);
            jobPost.POSITIONS_CNT = Convert.ToInt32(model.POSITIONS_CNTS);
            jobPost.JOB_TYPE =Convert.ToString(model.JOB_TYPE);
            jobPost.DURATION = model.DURATION;
            jobPost.CATEGORY = Convert.ToString(model.CATEGORY_ID);
            jobPost.PREREQUISITES = model.PREREQUISITES;
            jobPost.LOCATION = model.LOCATION;
            jobPost.RATE = model.RATE;
            //CLIENT=model.CLIENT_ID
            //CLIENT_ID=(model.CLIENT_ID)
            jobPost.TITLE = model.POST_TITLE;
            jobPost.DESCR = Regex.Replace(model.DESCRIPTION, @"<[^>]+>|&nbsp;", ""); 
            jobPost.CONTACT_NAME = model.CONTACT_PERSON;
            jobPost.CONTACT_INFO = model.CONTACT_PHONE + "/" + model.CONTACT_EMAIL;
            jobPost.SKILLS = model.SKILLS;
            jobPost.PERKS = model.PERKS;
            jobPost.DT_CR = DateTime.Now;
            jobPost.CR_BY = RL_Constants.USER_NAME;
            jobPost.STAT = "ACTIVE";
            jobPost.IS_DELETED = "N";

            reslandentity.JOB_POSTING.Add(jobPost);
            reslandentity.SaveChanges();
        }
        return RedirectToAction("JobSearchList", "Employer");
    }

问题出在哪儿

该错误消息表明您正在使用的客户端ID在“客户端”表中不存在。 您是否正确设置cliendId fk参考? 在您发布的代码中,clientId的设置已被注释掉。 这意味着clientId = 0(如果它是一个int),我敢打赌,您没有id = 0的任何客户端。

----更新-----当您的clientId = 0时,它尝试与客户表建立fk关系,该关系失败。 您说您现在不想使用clientId,并且clientId列可以为空。 我不确定为什么要为其分配0值,但是只是要检查其是否有效,您应该在映射中执行clientId = null。 这将阻止EF尝试建立fk关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM