如何在非启动项目中执行EF Core的Scaffold-DbContext命令
解决EF Core Scaffold-DbContext指定项目执行的问题
方法一:Package Manager Console 命令
直接在Package Manager Console中通过参数指定目标项目和临时启动项目,无需修改解决方案的启动项设置:
Scaffold-DbContext "你的数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer -Project DataProj -StartupProject DataProj -OutputDir Models -Force
-Project:指定生成DbContext和实体类的目标项目(即你的Data项目)-StartupProject:指定EF工具使用的启动项目,这里直接指向Data项目,避开对API项目的依赖-OutputDir:实体类生成的目录,可按需调整-Force:覆盖已存在的实体类(可选参数)
前提:确保Data项目已安装Microsoft.EntityFrameworkCore.Design和对应数据库的Provider包(比如Microsoft.EntityFrameworkCore.SqlServer)。
方法二:.NET CLI 命令
使用.NET CLI执行时,通过以下参数指定项目:
dotnet ef dbcontext scaffold "你的数据库连接字符串" Microsoft.EntityFrameworkCore.SqlServer --project DataProj --startup-project DataProj --output-dir Models --force
参数作用和Package Manager Console版本一致,--project指定目标项目,--startup-project临时将Data项目设为工具的启动项目。
额外注意
- 若Data项目是类库,需保证其
TargetFramework版本与EF Core包版本兼容 - 执行命令前先构建解决方案,避免编译错误导致命令失败
内容的提问来源于stack exchange,提问作者Justin williams
相关产品推荐
相关产品推荐

