EF 迁移看起来很酷,但有太多的“魔法”在进行,而且关于它实际在做什么的解释很少。我想要做的就是设置迁移点并获取 DDL 脚本——从一个迁移到另一个迁移的“差异”脚本或整个创建 DDL 脚本。
问题是所有迁移命令似乎都依赖于存在的实际数据库来执行一堆我不感兴趣的东西。有没有办法绕过所有这些而只使用迁移来生成脚本?
最佳答案
这是 discussed yesterday .迁移命令依赖于您的工作数据库,因为它们与 __MigrationHistory
交互。表以获取实际状态并正确计算必须进行的更改。
如果您只需要创建脚本,您可以通过使用带有附加参数的 Update-Database 来实现:
为整个数据库创建脚本:
Update-Database -Script -SourceMigration:$InitialDatabase
创建用于从迁移 A 升级到迁移 B 的脚本:
Update-Database -Script -SourceMigration:"A" -TargetMigration:"B"
关于.net - 使用 Entity Framework 4.3 迁移而不依赖于实际数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10809989/