gpt4 book ai didi

entity-framework - Entity Framework 6 Model-First - 根据本地变化更新生产数据库

转载 作者:行者123 更新时间:2023-12-04 07:25:35 25 4
gpt4 key购买 nike

我是 EF 的新手,继承了一个显然使用数据库优先开发的项目。

生产环境使用 SQL Azure,我基本上是想找出更新其架构的标准方法。

起初,在尝试此处描述的过程之前,我尝试为 EF 项目启用迁移:
http://www.dotnet-tricks.com/Tutorial/entityframework/R54K181213-Understanding-Entity-Framework-Code-First-Migrations.html
...但我发现它只适用于代码优先开发。

现在我打算做的是对我在本地开发环境中运行的数据库进行更改,然后使用我的本地数据库更新我的 EF 项目中的模型。

从那里,我想将更改部署到 SQL Azure 环境,同时保留数据库中的所有现有记录,但最好的方法尚不清楚。

EF 工具中是否有任何内容可以生成不删除表的更新脚本?我需要手动编写更新脚本吗?人们通常使用 SQL Server 工具来进行更新吗?

不幸的是,我最初的谷歌搜索没有找到问题的答案,尽管这似乎应该是一个非常普遍的问题。

最佳答案

EF 迁移用于代码优先开发,而不是数据库优先。但是如果您从数据库进行逆向工程,您仍然可以使用它。为此,您需要安装 The Entity Framework 6 Tools ,但这需要一些努力,比如

  • 逆向工程 源数据库
  • 生成到 新数据库通过使用 EF 迁移 ( Enable-Migrations , Add-Migration InitialCreate , Update-Database ConnectionStringName NewDatabase )
  • 逆向工程目标数据库 (修改后的数据库)
  • 生成 升级脚本 ( Enable-Migrations , Add-Migration UpgradeToVersionX , Update-Database ConnectionStringName NewDatabase -Script )

  • 此外,EF 数据库逆向工程仍然存在与唯一约束相关的问题。

    但是由于您首先使用数据库直接从数据库修改架构,因此更简单的方法是使用 SQL Server Data Tools 的架构比较器.
  • 创建 的新项目SQL Server 数据库项目 (来自其他语言 -> SQL Server)
  • 右键单击项目选择架构比较
  • 选择 源数据库目标数据库
  • 运行 生成脚本

  • Generate Script

    生成的脚本将与手动编写脚本一样接近,可能会减少人为错误,例如拼写错误。

    关于entity-framework - Entity Framework 6 Model-First - 根据本地变化更新生产数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25394120/

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