无法删除密钥。要删除的键已被另一个并发会话从索引中删除

Posted

技术标签:

【中文标题】无法删除密钥。要删除的键已被另一个并发会话从索引中删除【英文标题】:The key cannot be deleted. The key to be deleted is already deleted from an index by another concurrent session 【发布时间】:2015-10-11 00:46:15 【问题描述】:

我遇到了一个问题,即尝试从表中删除一行会产生此错误。

错误代码:80004005

消息:。

小错误:25161

来源:SQL Server Compact ADO.NET 数据提供程序

这可能与数据库中的重复主键条目有关,是的,我说重复主键。这是某些 Sql Compact 版本的已知问题。有谁知道我如何能够删除这一行?没有与数据库的其他会话,也没有索引的“删除时级联”。

文件版本:4.0.8876.1

【问题讨论】:

您使用的是什么构建(文件版本)的 SQLCE? 我遇到了同样的问题。这个问题绝对不是由于缺乏唯一性引起的。我们使用 64 位版本 4.0.8902.1 和实体框架版本 6.1.3。 【参考方案1】:

在 EF6 迁移后,我遇到了同样的问题。我用这个工具修复数据库:https://github.com/ErikEJ/SqlCeCmd/releases like that

SqlCeCmd40.exe -d "Data Source=C:\base.sdf" -e repairrecover

就我而言,它解决了问题

【讨论】:

以上是关于无法删除密钥。要删除的键已被另一个并发会话从索引中删除的主要内容,如果未能解决你的问题,请参考以下文章

SYSTEM32目录下.dll文件无法删除,文件正在被另一个人或程...怎么删除

从数据存储中检索密钥(更新和删除实体)

从 Heroku Git 存储库中删除密钥

从反应组件的状态中删除密钥的最佳方法

从json字符串中的键字符串替换或删除Dote(。)以插入mongodb

有一个文件无法删除,说是被另一个程序使用。怎么办?