将Scaffold-DbContext转为dotnet ef命令时遇-StartupProject未识别错误
解决dotnet ef dbcontext scaffold命令中-StartupProject参数的错误
你的问题出在dotnet ef CLI的参数位置和格式上,Package Manager Console的参数规则和dotnet ef命令行工具完全不同:
- 参数位置错误:
-StartupProject是dotnet ef的全局参数,必须放在dotnet ef之后、具体子命令(如dbcontext scaffold)之前,不能跟在连接字符串后面。 - 参数格式错误:dotnet ef CLI的长参数需要用双横线(--),而非Package Manager Console的单横线(-),比如
-StartupProject要改成--startup-project,-Namespace改成--namespace等。
修正后的完整命令
dotnet ef --startup-project Solution.Api dbcontext scaffold "Server=server_dns,sql_port;Database=db-name; User ID=sql-account;Password=LeetPa$$w0rd;" Microsoft.EntityFrameworkCore.SqlServer --context ApiDbContext --context-dir "Data\Context" --output-dir "..\Solution.Api.Data.Entities\DBStuff" --namespace "Solution.Api.Data.Entities.CRL" --context-namespace "Solution.Api.Data.Context" --no-on-configuring --force
关键调整点说明
- 将
--startup-project Solution.Api移到dbcontext scaffold之前,作为全局参数指定启动项目 - 所有原单横线的长参数统一改为双横线格式(如
-Context→--context、-NoOnConfiguring→--no-on-configuring) - 注意:如果在PowerShell中执行命令,密码里的
$符号需要用$$转义(你的命令里已正确处理);如果是CMD环境,需用^$转义。
内容的提问来源于stack exchange,提问作者DoomerDGR8
相关产品推荐
相关产品推荐

