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

标签 c# .net asp.net linq linq-to-sql

我正在尝试使用 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/

相关文章:

c# - 如何强制用户不通过 asp.net mvc 2 应用程序中的 url 输入跳过页面?

c# - 开发 html/jquery 座位应用程序的最佳方法(或者我们应该使用 silverlight/flash)

.net - Mono for OS X 对于专业的 .NET 开发人员有什么好处吗?

.net - 我应该使用什么来为多个站点创建类似于SO的登录系统?

android - Android 上的 PWA 是否/可以在隔离的容器或沙箱中运行?

asp.net - 无法从网格更新表(过程或函数 spExcelGridTestUpdateTable 指定的参数太多)

c# - 身份验证 gmail api C# windows phone 8.1

c# - 禁用附加到进程

c# - 使用 C# 执行 SQL 查询

c# - 编辑多对多关联表中的记录