Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 无法在实体框架.Net Core 3.1中插入重复的Id_Asp.net Core_Entity Framework Core - Fatal编程技术网

Asp.net core 无法在实体框架.Net Core 3.1中插入重复的Id

Asp.net core 无法在实体框架.Net Core 3.1中插入重复的Id,asp.net-core,entity-framework-core,Asp.net Core,Entity Framework Core,我将.NETCore3.1与EntityFramework一起使用,我遇到了这个错误 违反主键约束(约束名称)。无法在对象“dbo.TableName”中插入重复的键。重复的键值为(Guid键)。 声明已终止 当我试图从数据库中检索对象并将其作为相关数据分配给新对象时 例如: Employee employee = await _context.Employees .Where(e => e.Id == id)

我将.NETCore3.1与EntityFramework一起使用,我遇到了这个错误

违反主键约束(约束名称)。无法在对象“dbo.TableName”中插入重复的键。重复的键值为(Guid键)。
声明已终止

当我试图从数据库中检索对象并将其作为相关数据分配给新对象时

例如:

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();
所以,我得到了一个错误,因为我不能有一个重复的公司Id,但当我更换这一行

employeeStatus.Employee = employee;
用这个

employeeStatus.EmployeeId = employee.Id;
它工作得很好

所以,这是一个跟踪问题,还是我的代码序列中有一些错误,无法创建新对象并为其分配相关数据

注意:在使用.Net Core 2.2时,我很少遇到这个问题,但在迁移到.Net Core 3.1之后,我遇到了类似的情况

提前谢谢