4

我正在使用启用了 Code First 迁移的 Entity Framework 5.0。

我通过使用添加了唯一键:

CreateIndex("dbo.Groups", "Name", true);

现在我想通过使用下一次迁移的 Down() 方法删除现有的唯一键:

DropIndex("dbo.Groups", "Name");

但是我收到消息:

无法删除索引“dbo.Groups.Name”,因为它不存在或您没有权限。

我正在使用假设我是 DBO 的连接字符串。还有什么可能是错的?

4

2 回答 2

8

对此还有另一个答案:

DropIndex("dbo.Groups", new[]{"Name"});

DropIndex有一个重载,它采用列名,但它采用它们的数组。因此,对于单个列名,您仍然必须将其包装在一个数组中才能达到重载。

于 2013-08-28T12:08:50.707 回答
7

好的,我自己解决了这个问题:)

显然我滥用了 DropIndex 的语法。我假设它采用列的名称,但它采用索引的名称。这有效:

DropIndex("dbo.Groups", "IX_Name");

:)

自言自语2013!

于 2013-05-31T16:58:42.890 回答