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

ASP.NET Core MVC项目执行迁移后生成2个本地数据库原因咨询

ASP.NET Core执行迁移后生成两个本地数据库的原因

核心触发原因

和两次创建控制器的操作直接相关:

  • ASP.NET Core MVC的EF控制器脚手架默认会在生成控制器时,若未指定现有DbContext,会自动为当前模型生成独立的上下文类、并自动在配置文件中追加对应的数据库连接字符串
  • 第一次使用单数命名ConsumerModelController生成控制器时,哪怕后续操作报错,脚手架已经生成了对应的DbContext和连接字符串配置,此时如果执行过update-database(哪怕部分执行失败),已经生成了第一个数据库
  • 后续更换为复数命名ConsumerModelsController重新生成控制器时,脚手架若再次生成了新的独立DbContext、或者生成了新的连接字符串指向不同的库名,再次执行add-migration和update-database后,就会生成第二个数据库

其他可能诱因

  • 第一次操作失败后未清理残留的迁移文件,执行add-migration时未指定明确的DbContext,EF Core识别到多套迁移配置后,分别生成对应数据库
  • 脚手架自动生成的连接字符串默认以DbContext类名作为数据库名后缀,两次生成的上下文类名不同,会指向完全不同的数据库文件

排查方案

  • 检查项目根目录下的Migrations文件夹,确认是否存在两套不同前缀的迁移文件,分别对应不同的DbContext
  • 打开appsettings.json查看ConnectionStrings节点,确认是否存在多个数据库连接配置
  • 搜索项目中继承自DbContext的类,确认是否存在多个上下文实例,以及各自绑定的连接字符串是否一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 09:18:03