我首先使用EF5和代码来创建数据库。我有一个字符串字段,并希望将Index(非唯一)放在上面。是否可以使用数据注释创建索引?
答案 0 :(得分:2)
EF没有特殊的方法来创建索引,您需要恢复到旧式SQL语句。
您可以使用种子方法执行此操作
protected override void Seed(EntityMappingContext context)
{
context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON TABLE (COLUMN)");
}
如此处所述:Adding index to a table
答案 1 :(得分:0)
如果您正在使用代码迁移,则可以修改迁移(“向上”方法)以向新表添加索引: CREATETABLE( “dbo.tablename” c => {...}) .PrimaryKey(t => t.PrimaryKeyColumn) .Index(t => t.IndexColumn);
...或者,如果要向现有表添加索引,请使用: CreateIndex(“dbo.tablename”,t => t.IndexColumn)
降级db('Down'方法)时不要忘记删除索引 DropIndex(...)