实体框架代码首先不是在数据库中读取模型和创建表

时间:2016-01-27 15:12:17

标签: asp.net-mvc entity-framework code-first

以前,我非常擅长更新数据库,每当我想在数据库中创建表时,我只是用来创建模型然后命令

  

update-database -Verbose

并且实体框架代码首先处理其余部分,现在,我一直在努力更新数据库,因为每当我创建模型时它都没有得到更新,所以,我想从头开始创建数据库工作,所以,我从数据库中删除了我的__MigrationHistory表,删除了Migrations文件夹,再次启用它,添加了初始迁移,注释掉了up()方法中的内容,现在再次使用相同的命令更新数据库(Update-database -Verbose)但没有收获。

我的问题是,为什么不读取模型并在数据库中创建新表?如何使命令update-database再次运行,因为之前它已经完成了?

1 个答案:

答案 0 :(得分:2)

创建新模型后,您必须先手动添加迁移,然后再运行Update-Database以正确警告数据库发生了更改,或者启用了自动迁移。您可以通过在程序包管理器中运行以下命令来进行手动迁移:

Add-Migration NameOfMigration

您可以通过在程序包管理器中运行以下命令来启用自动迁移:

Enable-Migrations –EnableAutomaticMigrations

如果您使用自动迁移,则只需运行Update-Database即可对模型进行任何更改,包括添加新模型,并自动检测并添加到数据库中。