我正在使用 EF6 现有数据库的代码优先迁移,但初始 DbContext
没有完全覆盖现有的模式(因为它很大)。所以有时我必须以数据库优先的方式更新模型。例如,当我需要为数据库中已经存在但未反射(reflect)在代码中的表或列进行实体映射时,我会执行以下操作:
stub_migration
stub_migration
的最新序列化模型到 last_migration
资源文件stub_migration
last_migration
在数据库中 Update-Database
所以模型快照在 [__MigrationHistory]
表格也将更新我知道这种方法有点老套,正确的方法是留空
stub_migration
但这会强制执行许多我宁愿避免的空迁移。查看来自 MSDN article (Option 2: Update the model snapshot in the last migration) 的类似场景我不认为有比编写 power shell 脚本、托管代码或两者更简单的方法来使其工作。但在深入研究之前,我宁愿先询问社区。
所以我想知道:有没有一种简单的方法可以在最新的迁移中自动生成新模型快照并重新应用它?
最佳答案
我正在做类似的事情。我有一个大型数据库,我正在使用 VS 2013 的 EF 工具将它的小部分逆向工程到我的 DEV 环境中。该工具在单独的文件夹中创建我的 POCO 和上下文更改。我将它们移动到我的数据项目,创建一个流畅的配置,然后应用迁移(或打开自动迁移)。
一段时间后,我想要对 TEST 或 PROD 进行一次迁移,因此我使用此处解释的技术将它们汇总为一次迁移:http://cpratt.co/migrating-production-database-with-entity-framework-code-first/#at_pco=smlwn-1.0&at_si=54ad5c7b61c48943&at_ab=per-12&at_pos=0&at_tot=1
关于entity-framework - 更新 Entity Framework 中上次迁移的模型快照并重新应用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28879532/