如何使用实体框架代码首次迁移删除唯一索引

Adm*_*vić 3 indexing entity-framework entity-framework-5

我正在使用Entity Framework 5.0并启用了Code First迁移.

我使用以下方法添加了唯一键:

CreateIndex("dbo.Groups", "Name", true);
Run Code Online (Sandbox Code Playgroud)

现在我想使用下一个迁移的Down()方法删除现有的Unique键,方法是:

DropIndex("dbo.Groups", "Name");
Run Code Online (Sandbox Code Playgroud)

但是我得到的消息是:

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

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

Jos*_*her 8

还有另一个答案:

DropIndex("dbo.Groups", new[]{"Name"});
Run Code Online (Sandbox Code Playgroud)

还有就是那个需要列名DropIndex的过载,但它需要它们的排列.因此,对于单个列名称,您仍然必须将其包装在数组中以获得重载.


Adm*_*vić 6

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

显然我误用了DropIndex的语法.我假设它采用列的名称,而是采用索引的名称.这有效:

DropIndex("dbo.Groups", "IX_Name");
Run Code Online (Sandbox Code Playgroud)

:)

和自己说话2013!