gpt4 book ai didi

entity-framework - 更新 Entity Framework 中上次迁移的模型快照并重新应用它

转载 作者:行者123 更新时间:2023-12-01 05:05:53 24 4
gpt4 key购买 nike

我正在使用 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com