EF migrations看起来很酷,但实际上有太多"魔法"在发生,而且很少有解释。 我只想设置迁移点并获取DDL脚本-无论是从一个迁移到另一个的“差异”脚本还是整个创建DDL脚本。
问题在于所有迁移命令似乎都依赖于实际存在的数据库来执行我不感兴趣的一堆东西。 是否有一种方式可以绕过所有这些内容,只是使用迁移生成脚本?
问题在于所有迁移命令似乎都依赖于实际存在的数据库来执行我不感兴趣的一堆东西。 是否有一种方式可以绕过所有这些内容,只是使用迁移生成脚本?
这是昨天讨论的。迁移命令取决于您的工作数据库,因为它们与__MigrationHistory
表交互以获取实际状态并正确计算需要进行的更改。
如果您只需要创建脚本,可以使用Update-Database和其他参数来完成:
为整个数据库创建脚本:
Update-Database -Script -SourceMigration:$InitialDatabase
Update-Database -Script -SourceMigration:"A" -TargetMigration:"B"
AutomaticMigrationEnabled
为false是不够的,因为您可能刚刚几分钟前更改了它。这样行为更加确定和安全。无论如何,您可以在Data UserVoice上提出更改建议。 - Ladislav Mrnka