我先从DB开始设置这个项目,一切都很顺利。我可以正常调试。但是,当我尝试对我的某个模型进行更改时,而不是显示简单的AlterColumn语句的新迁移,它会继续尝试重新初始化整个数据库。
我尝试过运行update database -script并只插入_MigrationHistory表记录。即使在那之后,它仍然想要创建所有表格。
这曾经发生在任何人身上吗?
答案 0 :(得分:4)
当您从现有数据库开始时,您需要执行空(无操作)迁移以设置基线。这是因为EF将使用先前迁移中的模型进行比较,因此如果没有(在代码中)您将获得所有数据库对象。将记录插入__MigrationHistory只是告诉EF已应用代码迁移 - 它不会将其用于比较。
启用的迁移
add-migration MyBaseline -IgnoreChanges //没有Up()代码,但模型已保存
更新的数据库
//现在我可以更改模型并生成带差异的迁移
请参阅here.