【问题标题】:Creating Indexes via Data Annotations with EF 5使用 EF 5 通过数据注释创建索引
【发布时间】:2013-02-14 09:22:42
【问题描述】:

我首先使用 EF5 和代码来创建数据库。我有一个字符串字段,想在上面放 Index(non-unique)。是否可以使用数据注释创建索引?

【问题讨论】:

    标签: entity-framework-5 code-first


    【解决方案1】:

    EF 没有创建索引的特殊方法,您需要恢复为旧式 SQL 语句。

    你可以使用种子方法来做到这一点

    protected override void Seed(EntityMappingContext context)
    {
        context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON TABLE (COLUMN)");
    }
    

    如此处所述:Adding index to a table

    【讨论】:

    • 您可以使用自定义初始化程序或使用迁移来做同样的事情
    【解决方案2】:

    如果您使用的是代码迁移,您可以修改迁移(“Up”方法)以将索引添加到新表: 创建表( "dbo.tablename", c => {...}) .PrimaryKey(t => t.PrimaryKeyColumn) .Index(t => t.IndexColumn);

    ...或者,如果您要向现有表添加索引,请使用: CreateIndex("dbo.tablename", t => t.IndexColumn)

    降级数据库时不要忘记删除索引('Down'方法) DropIndex(...)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      相关资源
      最近更新 更多