以前,我非常擅长更新数据库,每当我想在数据库中创建表时,我只是用来创建模型然后命令
update-database -Verbose
并且实体框架代码首先处理其余部分,现在,我一直在努力更新数据库,因为每当我创建模型时它都没有得到更新,所以,我想从头开始创建数据库工作,所以,我从数据库中删除了我的__MigrationHistory表,删除了Migrations文件夹,再次启用它,添加了初始迁移,注释掉了up()方法中的内容,现在再次使用相同的命令更新数据库(Update-database -Verbose)但没有收获。
我的问题是,为什么不读取模型并在数据库中创建新表?如何使命令update-database再次运行,因为之前它已经完成了?
答案 0 :(得分:2)
创建新模型后,您必须先手动添加迁移,然后再运行Update-Database
以正确警告数据库发生了更改,或者启用了自动迁移。您可以通过在程序包管理器中运行以下命令来进行手动迁移:
Add-Migration NameOfMigration
您可以通过在程序包管理器中运行以下命令来启用自动迁移:
Enable-Migrations –EnableAutomaticMigrations
如果您使用自动迁移,则只需运行Update-Database
即可对模型进行任何更改,包括添加新模型,并自动检测并添加到数据库中。