如何使用Entity Framework Code First迁移删除唯一索引

4

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

我通过以下方式添加了唯一键:

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

现在,我想通过使用下面的方法,在下一次迁移的 Down() 方法中删除现有的唯一键:
DropIndex("dbo.Groups", "Name");

然而,我收到了以下消息:

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

我正在使用假定我是 DBO 的连接字符串。还可能出了什么问题?

2个回答

8
这个问题还有另一个答案:
DropIndex("dbo.Groups", new[]{"Name"});

有一个名为DropIndex的方法可以通过列名进行重载,但是需要将列名放入一个数组中。因此,如果只有一个列名,您仍然需要将其包装在一个数组中才能使用该重载。


7

好的,我已经自己解决了 :)

显然,我误用了DropIndex的语法。我以为它需要列的名称,但实际上它需要索引的名称。这个方法有效:

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

:)

Talking to myself 2013!


太棒了!你做到了。感谢分享。 - megamaiku

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接