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

ASP.NET Core 8.0 MVC项目EF Core迁移失败求助

问题解决:EF Core迁移报错ApplicationDBContext未继承自DbContext

问题根源

  1. 混用EF6与EF Core包:项目同时引用了EF6(EntityFramework 6.5.1)和EF Core 8.x的包,导致工具无法正确识别DbContext类型——EF6与EF Core的DbContext属于不同命名空间,工具误按EF6的逻辑检查上下文。
  2. 使用错误的迁移命令:enable-migrations是EF6的迁移初始化命令,EF Core中不存在该命令,无需提前启用即可直接创建迁移。

解决方案

1. 移除EF6的NuGet包

打开项目文件(.csproj),删除以下引用行:

<PackageReference Include="EntityFramework" Version="6.5.1" />

保存后执行dotnet restore,或在Visual Studio中右键项目选择「还原NuGet包」。

2. 使用EF Core的正确迁移命令

Package Manager Console命令:

  • 创建初始迁移:
    Add-Migration InitialCreate -Context Bulky.DataAccess.ApplicationDBContext
    
  • 应用迁移到数据库:
    Update-Database -Context Bulky.DataAccess.ApplicationDBContext
    

dotnet CLI命令(终端执行):

dotnet ef migrations add InitialCreate --context Bulky.DataAccess.ApplicationDBContext
dotnet ef database update --context Bulky.DataAccess.ApplicationDBContext

3. 验证上下文注册(可选)

确保Program.cs中已正确注册上下文:

builder.Services.AddDbContext<ApplicationDBContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

额外说明

  • EF Core迁移无需提前「启用」,直接通过Add-Migration创建迁移记录即可
  • 若解决方案包含多个项目,需在Package Manager Console中选中包含ApplicationDBContext的项目作为默认项目,或在dotnet CLI命令中添加--project参数指定项目路径。

内容的提问来源于stack exchange,提问作者Victor Bass

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:33:11