【发布时间】:2018-12-12 17:57:17
【问题描述】:
我正在使用代码优先迁移。在我构建新迁移之前,有没有办法在包管理器控制台中显示挂起的模型更改?
【问题讨论】:
标签: c# .net entity-framework-migrations
我正在使用代码优先迁移。在我构建新迁移之前,有没有办法在包管理器控制台中显示挂起的模型更改?
【问题讨论】:
标签: c# .net entity-framework-migrations
接受的答案告诉如何在应用到数据库之前为已经搭建好的模型更改获取 SQL。
最初的问题是考虑模型在脚手架前的变化(即在运行下一个“add-migration”之前模型自上次“add-migration”以来的变化......)
对于这个答案,我只想说:无论如何,脚手架可以让您预览。我的意思是,运行“添加迁移预览”或类似的东西,它将使用您感兴趣的模型更改创建脚手架迁移。然后只需从您的解决方案中删除...
这里的重点是,当实际“正在做”可以快速撤消时,无需“预览”。有些人可能会认为从解决方案的迁移部分删除脚手架迁移版本会破坏某些东西,但不,它得到了很好的支持。
您甚至可以测试脚手架,然后按照 Colin 在他的回答中的建议创建 sql 脚本,以获得完整的 SQL。此时仍未完成任何操作,因此如果您愿意,请删除迁移版本。
【讨论】:
我不知道在构建迁移之前查看模型中的待定更改,但我想不出不使用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
【讨论】: