使用EF 5创建通过数据注释创建索引

问题描述:

我使用EF5和代码首先创建数据库。我有一个字符串字段,并希望把索引(非唯一)就可以了。是否可以使用数据注释创建索引?使用EF 5创建通过数据注释创建索引

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

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

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

如下所述:Adding index to a table

+0

您可以通过使用自定义初始化程序或通过使用迁移来完成相同 – 2013-02-14 09:59:36

如果你使用的代码迁移,你可以修改迁移(“向上”的方法)来添加一个索引到一个新的表: CREATETABLE( “dbo.tablename”, C => {...}) .PrimaryKey(T => t.PrimaryKeyColumn) 的.index(T => t.IndexColumn);

...或者,如果您要添加一个索引到现有表,使用: 的CreateIndex( “dbo.tablename”,T => t.IndexColumn)

不要忘记删除索引降低数据库(“降低”方法) DropIndex(...)