使用 DbUp 的实体框架代码优先

Han*_*ans 6 c# entity-framework database-migration dbup

我正在考虑将Entity Framework 6 Code First数据库交互与DbUp数据库模式更新一起使用。问题是我不想使用EF迁移的原因。所以,我已经达到的工作流程是:

  1. 更改模型(添加POCOs、更改属性等)
  2. Add-Migration temp_file进去Visual Studio Package Manager Console
  3. Update-Database -Script进去Visual Studio Package Manager Console
  4. 获取生成的sql脚本,包括在表中插入新行__MigrationHistory
  5. 创建一个新.sql文件并传递生成的脚本
  6. 删除 temp_file
  7. 运行数据库

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

所以问题: 有没有更好的方法来DbUp使用 using进行数据库迁移Entity Framework

Iva*_*oev 4

在大多数情况下,您可以使用以下命令跳过步骤 (2) 和 (6)自动代码优先迁移跳过步骤 (2) 和 (6) :

自动迁移允许您使用 Code First 迁移而无需在项目中为您所做的每次更改提供代码文件

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

AutomaticMigrationsEnabled = true;
Run Code Online (Sandbox Code Playgroud)

需要考虑的一些事项:

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