EF CodeFirst - 在数据库创建后创建索引

Zyp*_*rax 1 indexing entity-framework code-first ef-migrations

我正在将我的项目从数据库优先迁移到代码优先.

实体框架做了一些很好的工作来创建我的新数据库(应该模仿旧的数据库).
我正在使用数据注释和流畅的API组合来描述我的表.

我的数据库有一些索引,我也希望实体框架能够创建它们.看来,执行此操作的旧方法是定义自己的初始化程序并使用自定义T-SQL.

但是现在我们有了EF迁移,它应该更容易实现.
我似乎无法弄清楚如何将CreateDatabaseIfNotExists <>与自动迁移相结合来创建索引.我尝试使用MigrateDatabaseToLatestVersion <,>但在创建数据库后似乎没有执行迁移.

现在我们有Entity Framework 4.3,在数据库创建上创建索引和约束的正确方法是什么?

Lad*_*nka 5

CreateDatabaseIfNotExists如果要使用迁移,请不要使用.MigrateDatabaseToLatestVersion从一开始使用- 它也将创建您的数据库.将索引创建代码(调用CreateIndex)放入迁移类的Up方法中.

如果您已有现有数据库并且要使用迁移,则必须先创建初始迁移.