EF迁移无法识别现有表格

时间:2016-04-27 12:52:57

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

我先从DB开始设置这个项目,一切都很顺利。我可以正常调试。但是,当我尝试对我的某个模型进行更改时,而不是显示简单的AlterColumn语句的新迁移,它会继续尝试重新初始化整个数据库。

我尝试过运行update database -script并只插入_MigrationHistory表记录。即使在那之后,它仍然想要创建所有表格。

这曾经发生在任何人身上吗?

1 个答案:

答案 0 :(得分:4)

当您从现有数据库开始时,您需要执行空(无操作)迁移以设置基线。这是因为EF将使用先前迁移中的模型进行比较,因此如果没有(在代码中)您将获得所有数据库对象。将记录插入__MigrationHistory只是告诉EF已应用代码迁移 - 它不会将其用于比较。

  

启用的迁移

     

add-migration MyBaseline -IgnoreChanges //没有Up()代码,但模型已保存

     

更新的数据库

     

//现在我可以更改模型并生成带差异的迁移

请参阅here.