Невозможно вставить двойной идентификатор в Entity Framework. Net Core 3.1 - PullRequest
1 голос
/ 17 марта 2020

Я использую. Net Core 3.1 с Entity Framework, и я получил эту ошибку

Нарушение ограничения PRIMARY KEY (Constraint_Name). Невозможно вставить дубликат ключа в объект "dbo.TableName". Значение дубликата ключа: (Guid Key).
Оператор завершен.

Когда я пытаюсь извлечь объект из базы данных и назначить его в качестве связанных данных для нового объекта.

Например:

Employee employee = await _context.Employees
                                  .Where(e => e.Id == id)
                                  .Include(e => ed.Company).FirstOrDefault();

EmployeeStatus employeeStatus = new EmployeeStatus();

employeeStatus.Status = "BlackListed";
employeeStatus.StartedFrom = DateTime.Now();
employeeStatus.Employee = employee;

await _context.EmployeeStatuses.AddAsync(employeeStatus);
await _context.SaveChangesAsync();

Итак, я получил ошибку, потому что не могу получить дубликат идентификатора компании, но когда я заменяю эту строку

employeeStatus.Employee = employee;

этой

employeeStatus.EmployeeId = employee.Id;

это работало хорошо.

Итак, это проблема с отслеживанием или у меня есть некоторые ошибки в моей последовательности кода для создания нового объекта и назначения ему связанных данных.

Примечание: я редко сталкивался с этой проблемой при использовании. Net Core 2.2, но после перехода на. Net Core 3.1 я столкнулся с похожим сценарием ios.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...