【发布时间】:2013-02-14 09:22:42
【问题描述】:
我首先使用 EF5 和代码来创建数据库。我有一个字符串字段,想在上面放 Index(non-unique)。是否可以使用数据注释创建索引?
【问题讨论】:
标签: entity-framework-5 code-first
我首先使用 EF5 和代码来创建数据库。我有一个字符串字段,想在上面放 Index(non-unique)。是否可以使用数据注释创建索引?
【问题讨论】:
标签: entity-framework-5 code-first
EF 没有创建索引的特殊方法,您需要恢复为旧式 SQL 语句。
你可以使用种子方法来做到这一点
protected override void Seed(EntityMappingContext context)
{
context.Database.ExecuteSqlCommand("CREATE INDEX IX_NAME ON TABLE (COLUMN)");
}
如此处所述:Adding index to a table
【讨论】:
如果您使用的是代码迁移,您可以修改迁移(“Up”方法)以将索引添加到新表: 创建表( "dbo.tablename", c => {...}) .PrimaryKey(t => t.PrimaryKeyColumn) .Index(t => t.IndexColumn);
...或者,如果您要向现有表添加索引,请使用: CreateIndex("dbo.tablename", t => t.IndexColumn)
降级数据库时不要忘记删除索引('Down'方法) DropIndex(...)
【讨论】: