gpt4 book ai didi

c# - Entity Framework 代码优先与 DbUp

转载 作者:太空狗 更新时间:2023-10-30 01:00:12 25 4
gpt4 key购买 nike

我正在考虑使用 Entity Framework 6 Code First 进行数据库交互,同时使用 DbUp 进行数据库模式更新。问题是出于某些原因我不想使用 EF 迁移。因此,我达到的工作流程是:

  1. 更改模型(添加 POCO、更改属性等)
  2. Visual Studio Package Manager Console 中运行 Add-Migration temp_file
  3. Visual Studio 包管理器控制台中运行Update-Database -Script
  4. 获取生成的 sql 脚本,包括在表 __MigrationHistory 中插入新行
  5. 创建一个新的 .sql 文件并通过生成的脚本
  6. 删除临时文件
  7. 运行 DbUp

它在本地和生产服务器上都能完美运行,但是我对每次生成新迁移时添加然后删除 temp_file 感到不舒服(我希望有一种方法可以永久停止 temp_file 被添加到解决方案中。)。

所以问题:使用 Entity Framework 使用 DbUp 进行数据库迁移是否有更好的方法?

最佳答案

在大多数情况下,您可以使用 Automatic Code First Migrations 跳过步骤 (2) 和 (6) :

Automatic Migrations allows you to use Code First Migrations without having a code file in your project for each change you make.

默认情况下禁用自动迁移。您可以通过在数据库迁移配置类构造函数(通常称为 Configuration 并位于 Migrations 子文件夹下)中添加以下内容来启用它们:

AutomaticMigrationsEnabled = true;

一些需要考虑的事情:

  • 文档指出自动迁移有局限性,因此请注意。
  • 您可以混合使用自动迁移和基于代码的迁移(换句话说,建议的方法和您当前的方法)。
  • 您当前方法的好处是您可以预览 EF 如何解释您的模型更改以及添加/删除/更改部分迁移代码。
  • 自动迁移在 EF Core 中已被弃用(不存在),因此在 EF Core 项目中,您必须使用与当前方法类似的方法,但您必须保留生成的迁移代码文件。

关于c# - Entity Framework 代码优先与 DbUp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48482796/

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