LINQ to SQL ForeignKeyReferenceAlreadyHasValueException错误
我尝试更改外键时生成此错误。 我知道这是一个非常常见的错误,我发现了很多关于它的信息,并试图实现我发现的修复程序,但在尝试更新密钥时仍然会出现此错误。 参考线程
最初我只是直接分配值而不是尝试映射实体。
ticket.assigned_to_group = assigned_to
我已经改变了尝试映射我相信正确答案的实体; 但是我仍然得到错误。
ticket.assigned_to_group = db.sub_units.Single(f => f.id == assigned_to).id;
知道为什么这不起作用。 此外,如果我有一个包含多个外键的表,我是否真的需要为每个键执行一个新查询,还是有更好的方法?
我认为您在分配实体时尝试分配ID。 (我不是100%确定这是你在做什么)
// Don't assign just the id Person.ParentId = parentId; // Assign the entity Person.Parent = db.Parents.Single(x.Id == parentId);
对于第二个问题,您可以加载所有sub_units
var groups = db.sub_units.ToArray()
和一次在内存中执行以下操作:
foreach(var ticket in tickets) { ticket.assigned_to_group = groups.Single(f => f.id == assigned_to); }