EF Code First - 在数据库创建后创建索引

时间:2012-04-21 08:47:29

标签: entity-framework code-first indexing ef-migrations

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

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

我的数据库有一些索引,我也希望Entity Framework能够创建它们。似乎旧方法是定义您自己的初始化程序并使用自定义T-SQL。

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

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

1 个答案:

答案 0 :(得分:5)

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

如果您已有现有数据库且想要使用迁移,则必须先create initial migration