entity-framework - Entity Framework 5 - "Conflicting Changes Detected"

标签 entity-framework entity-framework-5

在我们的 EF 5 应用程序中,当我们在插入或更新时遇到 SQL Server 死锁错误时,我们会立即再次尝试该操作。但是,当我们尝试这样做时,会收到以下错误:

"Conflicting changes detected. This may happen when trying to insert multiple entities with the same key."

此错误不是来自 SQL Server。这是 EF 5 错误。而且我们不会尝试使用相同的键插入多个实体。 IOW,我们没有尝试插入重复的行。但是,我怀疑这个错误意味着别的。但我并不完全确定我知道问题是什么。如果我不得不猜测,我会说在第一次尝试时,EF 会看到尝试插入实体的位置。由于死锁而失败。当我们立即再次尝试时,EF 认为我们正在尝试使用相同的 key 再次执行相同的操作,并且不喜欢它。不知道如何解决这个问题。

最佳答案

听起来您可能正在尝试针对 DbContext 的同一实例执行查询。在这种情况下,您的更改已从上次尝试中挂起。

由于上下文中没有“撤消挂起的更改”,因此您必须在“重试”之间处理和重新创建上下文。

关于entity-framework - Entity Framework 5 - "Conflicting Changes Detected",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17237777/

相关文章:

c# - 将 SQL 查询转换为 LINQ(子查询)

.net - Entity Framework 5.0 代码优先,在 .Net 4.5 上使用 MySQL Connector 6.6.5.0

c# - 使用 Linq 关联防止空异常

c# - 比较 Entity Framework 5 中 Any() 与 Count() 生成查询的性能

entity-framework - EF Core 3 的 DbContextScope 模式

C# 添加 DBContext 作为泛型类型参数

c# - 如何使用 Linq 和 Entity Framework 获得不同的、不区分大小写的列表

asp.net-mvc - EF4.3.1中的MaxLength属性

entity-framework - EF Code First - 创建数据库 - 用户登录失败

c# - SqlDependency - "Login failed for user ' sa'。