向 Restful API POST 请求后出现 SqlException 错误

问题描述 投票:0回答:1

代码

public IActionResult CreateVacancy([FromBody] VacancyDTO vacancyDTO)
{
    if (vacancyDTO == null)
        return BadRequest(ModelState);

    var existed = _vacancyRepository.GetVacancyByTitle(vacancyDTO.Title);

    if (existed != null)
    {
        ModelState.AddModelError("Existed", "Vacancy with this title already existed");
        return StatusCode(422, ModelState);
    }

    if (!ModelState.IsValid)
    {
        return BadRequest(ModelState);
    }

    var vacancy = _mapper.Map<Vacancy>(vacancyDTO);

    if (!_vacancyRepository.CreateVacancy(vacancy))
    {
        ModelState.AddModelError("Not Created", "Failed To Create");
        return StatusCode(500, ModelState);
    }

    return Ok("Successfully created");
}

当我尝试插入新职位空缺时,出现此错误:

SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“雇主”中插入标识列的显式值。

即使我插入依赖于

vacancies
employerId
表,并且当我插入新空缺职位时,我也会提供存在的
employerId
值。

public bool CreateVacancy(Vacancy vacancy)
{
    _context.Vacancies.Add(vacancy);
    return Save();
}
c# asp.net api rest
1个回答
1
投票

您的 DbContext 更改跟踪器中有一个处于“已添加”状态的雇主。 这是附加实体图时的默认设置。 但这个实体应该设置为“Unchanged”,这样 EF 就不会尝试插入它。

© www.soinside.com 2019 - 2024. All rights reserved.