Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 使用Entity Framework 6迁移创建索引_Entity Framework_Indexing_Ef Code First_Sql Server 2012_Entity Framework 6 - Fatal编程技术网

Entity framework 使用Entity Framework 6迁移创建索引

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]) 我在这个主题上找到了答案,但它提供了一个相当麻烦的解决方案。也许

如果必须使用以下索引,是否有方法使用实体框架代码优先迁移在MS SQL Server数据库中创建索引:
  • 至少按一列递减
  • 包括其他栏目

它必须生产出这样的产品:

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。