代码
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();
}
您的 DbContext 更改跟踪器中有一个处于“已添加”状态的雇主。 这是附加实体图时的默认设置。 但这个实体应该设置为“Unchanged”,这样 EF 就不会尝试插入它。