Entity framework 使用Entity Framework 6迁移创建索引
如果必须使用以下索引,是否有方法使用实体框架代码优先迁移在MS SQL Server数据库中创建索引:Entity framework 使用Entity Framework 6迁移创建索引,entity-framework,indexing,ef-code-first,sql-server-2012,entity-framework-6,Entity Framework,Indexing,Ef Code First,Sql Server 2012,Entity Framework 6,如果必须使用以下索引,是否有方法使用实体框架代码优先迁移在MS SQL Server数据库中创建索引: 至少按一列递减 包括其他栏目 它必须生产出这样的产品: CREATE NONCLUSTERED INDEX [IX_IndexName] ON [dbo].[TableName] ( [Column1] ASC, [Column2] DESC ) INCLUDE ([Column3], [Column4]) 我在这个主题上找到了答案,但它提供了一个相当麻烦的解决方案。也许
- 至少按一列递减
- 包括其他栏目
CREATE NONCLUSTERED INDEX [IX_IndexName] ON [dbo].[TableName]
(
[Column1] ASC,
[Column2] DESC
)
INCLUDE ([Column3], [Column4])
我在这个主题上找到了答案,但它提供了一个相当麻烦的解决方案。也许,自从这篇文章写下来之后,有些事情已经有所改善
我也知道可以让我的迁移执行任意的SQL代码,但我真的希望能够使用某种版本的
CreateIndex
方法来为我完成所有的脏活,而不是自己编写SQL代码。我刚刚遇到了同样的问题,目前似乎它不是迁移API的一部分。我的解决方法只是执行sql进行向上迁移,使用DropIndex方法进行向下迁移
public override void Up()
{
Sql("CREATE NONCLUSTERED INDEX IX_IndexName ON TableName ([Column1], [Column2] DESC) INCLUDE ([Column3], [Column4])");
}
public override void Down()
{
DropIndex("TableName", "IX_IndexName");
}
它并不漂亮,可以整理成一个可重用的方法/扩展等,但它确实起到了作用。我发现了重复的文章@金元,谢谢你!虽然我的帖子比较老,但奇怪的是,有人收到了更多的答案:)它们看起来确实很有用,所以任何路过的人都请点击上面的链接。一个问题是,我的问题也是关于INCLUDE的,但我认为那里提供的解决方案也可以扩展到支持INCLUDE。