You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在现有ASP.NET Core Web应用中执行Entity Framework迁移脚本创建数据库

运行EF Core迁移创建数据库的操作步骤

前置准备

  • 先确保你已经安装了EF Core命令行工具,已安装可跳过:
    执行命令 dotnet tool install --global dotnet-ef
    安装完成后可执行 dotnet ef --version 验证版本与项目依赖的EF Core版本匹配
  • 确认项目配置文件(如appsettings.json)中已经配置好目标数据库的连接字符串,账号拥有建库、修改表结构的权限

方式1:CLI直接执行迁移(最常用)

  • 终端定位到ASP.NET Core项目的.csproj文件所在目录
  • 执行命令 dotnet ef database update
  • 工具会自动按迁移文件的时间戳顺序,依次执行所有迁移的Up方法,自动创建数据库、初始化所有表结构

方式2:应用启动时自动执行迁移(适合开发、容器部署场景)

如果你希望应用启动时自动检测未应用的迁移并执行,可在Program.cs中添加如下逻辑:

var app = builder.Build();

// 新增这段迁移逻辑
using (var scope = app.Services.CreateScope())
{
    var dbContext = scope.ServiceProvider.GetRequiredService<替换为你的DbContext类名>();
    dbContext.Database.Migrate();
}

// 原有中间件、启动逻辑保留
app.Run();

首次启动应用时就会自动完成数据库创建和迁移执行。

方式3:生成原生SQL脚本自行执行(适配原有SQL管理习惯)

如果你更习惯手动执行SQL脚本管理数据库,可直接通过EF工具生成和迁移对应的全量SQL脚本,和你现有MigrationScript文件夹的管理逻辑对齐:

  • 执行命令 dotnet ef migrations script --output ./MigrationScript/FullMigration.sql --idempotent
  • --idempotent参数会让生成的脚本自动判断迁移是否已执行,重复运行不会报错,逻辑和你之前用数据库项目publish生成的脚本一致
  • 生成的FullMigration.sql直接在数据库管理工具中执行,即可完成全量库结构创建

可选回滚操作

如果需要回退到某一版本的迁移,可执行命令 dotnet ef database update 迁移文件名前缀,例如回退到仅添加了Identity的版本:dotnet ef database update 20151227555555_AddIdentity,工具会自动执行对应迁移的Down方法完成结构回滚。

内容的提问来源于stack exchange,提问作者For Comment

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 12:06:00