一尘不染

实体框架6.1-使用INCLUDE语句创建索引

sql

因此,既然现在在最新的Entity Framework 6.1
Beta版本中都可以使用索引,那么是否甚至有可能以代码优先的方式创建与该SQL语句相等的索引?

CREATE NONCLUSTERED INDEX [Sample1]
ON [dbo].[Logs] ([SampleId],[Date])
INCLUDE ([Value])

阅读 133

收藏
2021-03-17

共1个答案

一尘不染

严格来说,在代码优先迁移中这一直是可能的,因为您可以在迁移中运行sql:

   public partial class AddIndexes : DbMigration
    {
        private const string IndexName = "IX_LogSamples";

        public override void Up()
        {
            Sql(String.Format(@"CREATE NONCLUSTERED INDEX [{0}]
                               ON [dbo].[Logs] ([SampleId],[Date])
                               INCLUDE ([Value])", IndexName));

        }

        public override void Down()
        {
            DropIndex("dbo.Logs", IndexName);
        }
    }

但是我意识到您可能实际上是在问是否可以使用6.1中引入的IndexAttribute创建索引,但是要使用Include列-答案是“否”

2021-03-17