Я использую эту логику в течение месяца, и она недавно перестала работать.
var tool = new Tool() { ToolNumber = toolNumber.Trim(), Description = description.Trim() };
context.AddToTools(tool);
context.SaveChanges();
AddToTools выглядит так:
public void AddToTools(Tool tool)
{
base.AddObject("Tools", tool);
}
Я получаю сообщение об ошибке в context.SaveChanges ();
System.Data.Entity.Core.UpdateException
HResult = 0x80131501
Сообщение = Произошла ошибка при обновлении записей. Смотрите подробности во внутреннем исключении.
Внутреннее исключение:
{"Нарушение ограничения PRIMARY KEY 'PK_Tool'. Невозможно вставить повторяющийся ключ в объект 'dbo.Tool'. Значение дублирующегося ключа равно (0). \ R \ nОтношение завершено."}
Когда я проверяю значение, значение tool.ID равно 0, и в таблице уже есть идентификатор 0, поэтому исключение является правильным.
Похоже, какое-то обновление, обновление ОС или обновление SqlServer или что-то сломало его.
Почему моя вставка в таблицу не работает?