代码优先迁移 - 如何显示待定模型更改?

时间:2013-08-11 00:06:03

标签: c# .net ef-migrations

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

2 个答案:

答案 0 :(得分:70)

接受的答案说明如何在应用于数据库之前获取已经支架模型的SQL更新。

原始问题认为模型更改前脚手架(即自上次“添加 - 迁移”以来模型中的更改,然后运行下一个“添加 - 迁移”...)

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

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

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

答案 1 :(得分:30)

我没有办法在脚手架迁移之前查看模型中的挂起更改,但我想不出有什么理由不使用Add-Migration来支持迁移,以便挂起的更改可以是在迁移文件中查看。无需将这些更改应用于数据库,并且始终可以删除脚手架迁移。

迁移到脚手架后,如果使用Update-Database -Script实体框架生成SQL脚本而不是直接执行更改。

您可以使用get-help EntityFramework

获取包管理器中EntityFramework的帮助

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

get-help Update-Database

get-help Update-Database -detailed

get-help Update-Database -full