LINQ to SQL ForeignKeyReferenceAlreadyHasValueException错误

Tim*_*Tim 14 c# linq-to-sql

我尝试更改外键时生成此错误.我知道这是一个非常常见的错误,我发现了很多关于它的信息,并尝试实现我发现的修复程序,但在尝试更新密钥时仍然会出现此错误.参考线程

最初我只是直接分配值而不是尝试映射实体.

ticket.assigned_to_group = assigned_to
Run Code Online (Sandbox Code Playgroud)

我已经改变了尝试映射我相信正确答案的实体; 但是我仍然得到错误.

ticket.assigned_to_group = db.sub_units.Single(f => f.id == assigned_to).id;
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用.此外,如果我有一个包含多个外键的表,我是否真的需要为每个键执行新查询,还是有更好的方法?

Jon*_*son 35

我认为您在分配实体时尝试分配ID.(我不是100%肯定这是你在做什么)

// Don't assign just the id
Person.ParentId = parentId;

// Assign the entity
Person.Parent = db.Parents.Single(x.Id == parentId);
Run Code Online (Sandbox Code Playgroud)