.NET 8中dotnet ef add migrations同时指定项目与上下文名的问题
问题原因及解决方法
第一个错误原因
执行dotnet ef dbcontext -v info时提示找不到DbContext,是因为EF工具默认扫描当前执行命令目录下的程序集,而你当前目录的项目(程序集ef)里没有定义DbContext,或者工具未扫描到正确的项目。
第二个命令失效的核心原因
你写的命令参数顺序错误,dotnet ef的命令结构要求选项参数(如--startup-project、--context)必须放在子命令之后。你把选项放在了migrations add前面,导致工具识别为无效命令,直接返回用法信息。
正确的命令写法
生成迁移的正确命令
如果你的启动项目是../EF,DbContext类是BillerEntities,且当前目录是DbContext所在的项目,执行:
dotnet ef migrations add init --startup-project ../EF --context BillerEntities
如果当前目录不是DbContext所在的项目,需要额外指定DbContext所在项目:
dotnet ef migrations add init --project ./你的数据层项目名 --startup-project ../EF --context BillerEntities
查看DbContext信息的正确命令
如果要查看指定上下文的信息,修正参数顺序后执行:
dotnet ef dbcontext info --startup-project ../EF --context BillerEntities -v
额外注意事项
- 确保启动项目(
../EF)已引用包含BillerEntities的项目 - 确认
BillerEntities类继承自DbContext,且不是抽象类、非泛型类 - 若项目中有多个DbContext,必须通过
--context明确指定要使用的类
内容的提问来源于stack exchange,提问作者Alex161
相关产品推荐
相关产品推荐

