Для моего API я использую Entity Framework Core с первой миграцией кода.Я создал некоторые отношения, которые работают нормально.Теперь я добавил еще одно отношение (один ко многим), и внезапно меня шлепнули по ушам с этой ошибкой:
Cannot insert explicit value for identity column in table 'Companies' when IDENTITY_INSERT is set to OFF."
Конечно, я, должно быть, делаю что-то не так, ноЯ просто не могу понять что .Я встречал больше вопросов, таких как этот, где ответом было «установить IDENTITY_INSERT на ON», но это не работает для меня, так как EF обрабатывает все.
Мой класс компании, который может принадлежать группе:
public class Company
{
// Primary key
public int Id { get; set; }
// The optional Id of a Group
public int? GroupID { get; set; }
...
}
И класс группы:
public class Group
{
// Primary key
public int Id { get; set; }
// Name of the Group
public string Name { get; set; }
// List of Companies in this group
public IEnumerable<Company> Companies { get; set; }
}
Код, используемый для обработки POST:
// POST api/groups
[HttpPost]
public async Task<IActionResult> Post([FromBody] Group group)
{
try
{
if (ModelState.IsValid)
{
_context.Groups.Add(group);
await _context.SaveChangesAsync();
return CreatedAtRoute("GetGroup", new { id = group.Id }, group);
}
return BadRequest(ModelState);
}
catch (Exception e)
{
return BadRequest($"Unable to create: {e.Message}");
}
}
В моей базе данных все столбцы, индексы и ключисоздан, как и ожидалось, и точно так же, как и все остальные, у меня есть отношения в моем API.Но этот конкретный случай просто кажется несчастным ...
Класс, который я пытаюсь добавить в базу данных: