Asp.net Core MVC项目Equinox更新Migration时出现错误该如何解决?
报错根因
这是多DbContext场景下EF Core迁移的典型执行问题,不属于项目本身的配置错误,常见触发原因如下:
- 执行
Update-Database时未显式指定Identity对应的DbContext:该项目存在2个不同的DbContext,分别对应业务核心数据和Identity鉴权数据,不带参数的迁移命令会默认匹配首个识别到的DbContext,和你要操作的Identity DbContext不匹配就会报错。 - 连接字符串配置读取错误:执行迁移时如果没有指定启动项目为Equinox.UI.Web,EF会读取其他层的配置文件,无法拿到Identity对应的正确连接字符串。
- 迁移路径配置不匹配:Identity DbContext注册时如果没有指定迁移程序集为Equinox.UI.Web,EF找不到对应迁移文件也会触发报错。
修复方案
执行带完整参数的迁移命令即可:
Update-Database -Context ApplicationDbContext -Project Equinox.UI.Web -StartupProject Equinox.UI.Web
如果执行后依然报错,优先核对两项配置:
- Equinox.UI.Web层
appsettings.json中的Identity连接字符串,和之前Equinox.Infra.Data层迁移用的连接字符串是否一致,实例名、认证方式、数据库权限配置是否正确。 - Equinox.UI.Web层的服务注册代码中,注册Identity DbContext时是否指定了迁移Assembly为当前Web层程序集。
内容的提问来源于stack exchange,提问作者masterj
相关产品推荐
相关产品推荐

