如何解决ASP.NET Core迁移时多DbContext需指定上下文的错误?
解决ASP.NET EF Core迁移中“检测到多个DbContext”的问题
- 先确认项目里所有DbContext的类名,比如模板自带的
ApplicationDbContext或是你自定义的上下文类,明确要迁移的目标上下文。 - 在程序包管理器控制台(PM>)里用正确的命令格式,必须指定上下文:
注意:如果DbContext在特定命名空间下,要填写完整的「命名空间+类名」,比如PM> add-migration "initialsetup" -Context YourDbContextClassNameData.MyAppDbContext。 - 检查程序包管理器控制台顶部的默认项目下拉框,确保选中的是包含你的DbContext的项目(比如Web项目或数据类库项目),选错项目会导致上下文识别异常。
- 如果上述方法没用,试试dotnet CLI命令:
- 打开命令行工具,切换到项目根目录(包含
.csproj文件的目录) - 执行迁移命令:
dotnet ef migrations add initialsetup --context YourDbContextClassName - 要是提示未安装EF Core工具,先执行:
dotnet tool install --global dotnet-ef
- 打开命令行工具,切换到项目根目录(包含
- 最后确认你的DbContext类已正确配置连接字符串,且在Program.cs(或Startup.cs)中注册到了DI容器:
builder.Services.AddDbContext<YourDbContextClassName>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("YourConnectionString")));
内容的提问来源于stack exchange,提问作者new csharp'er
相关产品推荐
相关产品推荐

