当您使用Entity Framework代码优先时,我一直在研究如何在列上添加索引。
我认为,有三种方法:
IndexAttribute
我不太喜欢这两种方法:
1:似乎风险很大。有时您可能希望重置所有迁移并进行初始设置"再次。然后您的索引可能会被删除。
此外,我认为它很透明,隐藏得很好。
2:看起来很新且有限的文档。不知道这有多好用吗?
3:如果您重新创建数据库,则会很危险。
所以我的问题是:如何在代码优先的实体框架中添加索引?
答案 0 :(得分:5)
在迁移中手动添加代码是可以的,但我不推荐它。您仍需要更新模型,以便正确进行迁移
是什么让你认为这是新的和无证的?这绝对没有错。
绝对不要这样做。应避免手动修复数据库的诱惑。
你没有提到这个,但你也可以使用流利的语法,如下所示:
modelBuilder
.Entity<Company>()
.Property(t => t.Name)
.HasColumnAnnotation(
"Index",
new IndexAnnotation(new IndexAttribute("IX_Company_Name")
{
IsUnique = true
}));