我正在尝试使用 LINQ-to-SQL 插入一个新实体,并且该实体与一个用户实体相关联。新实体的插入成功,但我现有的用户实体被插入,就好像它是一个新用户一样。代码如下所示:
var someEntity = new Entity();
someEntity.User = this.User;
dataContextInstance.SomeEntities.InsertOnSubmit(someEntity);
dataContextInstance.SubmitChanges();
有谁知道为什么将用户作为一个全新的实体插入到用户表中?看起来 User.UserId 将成为映射到正在插入的 someEntity 的行的 UserId 列中的外键值。
感谢任何帮助/建议/评论
最佳答案
由于 User 实体先前已被另一个 DataContext 加载(希望现在应该被释放!),您必须将其附加到新的(当前)DataContext,否则 DataContext 会将其视为新实体而不是现有的(已经存在于数据库中)。
关于c# - 为什么 LINQ to SQL 实体关联在插入新记录时创建新的(重复的)行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/785291/