8

在我们的 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 认为我们正在尝试使用相同的密钥再次执行相同的操作,并且不喜欢它。不知道如何解决这个问题。

4

1 回答 1

10

听起来您可能正在尝试针对 DbContext 的同一实例执行查询。在这种情况下,您的更改已在上次尝试时处于待处理状态。

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

于 2013-06-21T16:05:05.303 回答