29

我正在使用代码优先迁移。在我构建新迁移之前,有没有办法在包管理器控制台中显示挂起的模型更改?

4

2 回答 2

69

接受的答案告诉如何在应用到数据库之前为已经搭建好的模型更改获取 SQL。

原始问题考虑模型更改前脚手架(即在运行下一个“添加迁移”之前,模型自上次“添加迁移”以来的更改......)

对于这个答案,我只想说:无论如何,脚手架,它给你你的预览。我的意思是,运行“添加迁移预览”或类似的东西,它将使用您感兴趣的模型更改创建脚手架迁移。然后从您的解决方案中删除...

这里的重点是,当实际“正在做”可以快速撤消时,无需“预览”。有些人可能会认为从解决方案的迁移部分删除脚手架迁移版本会破坏某些东西,但不,它得到了很好的支持。

您甚至可以测试脚手架,然后按照 Colin 在他的回答中建议的那样创建 sql 脚本,以获得完整的 SQL。此时仍未完成任何操作,因此如果您愿意,请删除迁移版本。

于 2015-06-19T16:18:53.693 回答
33

在构建迁移之前,我不知道如何查看模型中的待定更改,但我想不出不使用迁移的理由,Add-Migration以便可以在迁移文件中查看待定更改。无需将这些更改应用于数据库,并且始终可以删除脚手架迁移。

一旦迁移搭建好了,如果你使用Update-Database -Script实体框架生成一个 SQL 脚本而不是直接执行更改。

您可以使用包管理器中的 EntityFramework 获得帮助get-help EntityFramework

您可以使用以下命令获取有关 Update-Database 命令的帮助:

get-help Update-Database

get-help Update-Database -detailed

get-help Update-Database -full

于 2013-08-12T15:08:20.940 回答