Mysql INSERT语句与外键constraint2冲突

Mysql INSERT语句与外键constraint2冲突,mysql,asp.net-mvc,Mysql,Asp.net Mvc,INSERT语句与外键约束“fk_JOB_POSTING_CLIENT”冲突。冲突发生在数据库“ResLand”、表“dbo.CLIENT”、列“ID”中。声明已终止 当我在招聘屏幕中插入数据时,我收到了上述异常消息 我的职位发布表数据库设计为: INSERT INTO [dbo].[JOB_POSTING] ([COMP_ID] ,[RES_ID] ,[RES_TYPE] ,[CONTACT_NAME] ,[CONTAC

INSERT语句与外键约束“fk_JOB_POSTING_CLIENT”冲突。冲突发生在数据库“ResLand”、表“dbo.CLIENT”、列“ID”中。声明已终止

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

  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");
    }
[验证输入(假)]
//[ValidateAntiForgeryToken]
[HttpPost]
公共操作结果PostJob(PostJobModel模型,字符串btn)
{
如果(btn==“保存”)
{
JOB_POSTING jobPost=新的JOB_POSTING();
jobPost.RES_ID=RL_常量.RES_ID;
jobPost.RES_TYPE=RL_Constants.RES_TYPE;
jobPost.COMP_ID=RL_常量.COMP_ID;
jobPost.POST_DT=转换到当前时间(model.POST_DT);
jobPost.POST\u END\u DT=Convert.ToDateTime(model.POST\u END\u DT);
jobPost.POSITIONS\u CNT=转换为32(model.POSITIONS\u CNTS);
jobPost.JOB_TYPE=Convert.ToString(model.JOB_TYPE);
jobPost.DURATION=model.DURATION;
jobPost.CATEGORY=Convert.ToString(model.CATEGORY\u ID);
jobPost.Premissions=model.Premissions;
jobPost.LOCATION=model.LOCATION;
jobPost.RATE=model.RATE;
//CLIENT=model.CLIENT\u ID
//CLIENT\u ID=(model.CLIENT\u ID)
jobPost.TITLE=model.POST\u TITLE;
jobPost.DESCR=Regex.Replace(model.DESCRIPTION,@“]+>|“,”);
jobPost.CONTACT\u NAME=model.CONTACT\u 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=“活动”;
jobPost.IS_DELETED=“N”;
reslandentity.JOB_POSTING.Add(jobPost);
reslandentity.SaveChanges();
}
返回重定向到操作(“工作搜索列表”、“雇主”);
}

问题出在哪里

错误消息表示您正在使用的客户端Id在客户端表中不存在。是否正确设置cliendId fk引用?在您发布的代码中,clientId的设置已被注释掉。这意味着clientId=0(如果它是int),我打赌您没有id=0的客户机

----更新-----
当clientId=0时,它尝试与客户机表建立fk关系,但失败。您说过此时不想使用clientId,并且clientId列可以为空。我不确定为什么它被赋值为0,但为了检查它是否工作,您应该在映射中执行clientId=null。这将防止EF尝试建立fk关系。

但我在这方面没有使用clientid,在数据库中,我也将clientid设置为allow Null。我假设您的表与ID列上的客户端表有fk关系。为了帮助你,我需要更多关于数据库设置的信息。你在用EF吗?job_posting和client之间是否存在fk关系?是的,我们使用的是EF,job_posting clientid和client id之间存在fk关系,但我没有使用clientid。听起来您在表fk关系的配置中存在一些问题。请发布您的配置代码,我可能会帮助您。另外,在将jobPost.ClientId添加到存储库时,请检查它是否有值。此处不使用jobPost.ClientId。请确保您的模型与数据库表同步。