为什么LINQ to SQL实体关联在插入新记录时会创建一个新的(重复)行?

mke*_*y33 6 .net c# linq asp.net linq-to-sql

我试图使用LINQ-to-SQL插入一个新实体,并且实体与User实体相关联.新实体的插入成功,但我现有的用户实体被插入,就好像它是一个新用户一样.代码如下所示:

var someEntity = new Entity();
someEntity.User = this.User;
dataContextInstance.SomeEntities.InsertOnSubmit(someEntity);
dataContextInstance.SubmitChanges();
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么用户被插入到Users表中作为一个全新的实体?似乎User.UserId将成为映射到正在插入的someEntity的行的UserId列中的外键值.

感谢您的任何帮助/建议/意见

Rob*_*obS 10

由于User实体先前已被另一个DataContext加载(现在希望它可以被处理!),您必须将它附加到新的(当前)DataContext,否则DataContext将其视为新实体而不是现有实体(它已经存在于DB中.