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

EF Core数据库优先如何指定Scaffold-DbContext输出到指定类库

解决方案

Scaffold-DbContext默认将生成文件输出到包管理器控制台(PMC)当前选中的默认项目,你当前默认项目选中的是ManageEmployee.Web,所以文件生成到了Web项目中。要将文件输出到ManageEmployee.Management类库,按以下步骤操作:

  • 第一步:安装依赖
    给ManageEmployee.Management类库安装两个必需的NuGet包:
    • Microsoft.EntityFrameworkCore.SqlServer
    • Microsoft.EntityFrameworkCore.Tools
      两个包的版本要和你Web项目中使用的EF Core版本保持一致,避免版本冲突。
  • 第二步:执行脚手架命令
    两种操作方式二选一即可:
    1. 切换默认项目执行
      打开包管理器控制台,将顶部的「默认项目」下拉选项切换为ManageEmployee.Management,保持解决方案启动项目为ManageEmployee.Web,直接执行原有命令即可:
    Scaffold-DbContext -Connection "Server=MCH-DESKTOP\SQLEXPRESS; Database=AutoSoftSystems; Trusted_Connection=True; MultipleActiveResultSets=true;" 
                       -Provider Microsoft.EntityFrameworkCore.SqlServer 
                       -OutputDir "Models" 
                       -ContextDir "Data" -Context "EmployeeDbContext"
    
    1. 加参数指定目标项目,无需切换默认项目
      如果不想修改PMC默认项目,直接在原命令中添加-Project和-StartupProject参数即可:
    Scaffold-DbContext -Connection "Server=MCH-DESKTOP\SQLEXPRESS; Database=AutoSoftSystems; Trusted_Connection=True; MultipleActiveResultSets=true;" 
                       -Provider Microsoft.EntityFrameworkCore.SqlServer 
                       -Project "ManageEmployee.Management"
                       -StartupProject "ManageEmployee.Web"
                       -OutputDir "Models" 
                       -ContextDir "Data" -Context "EmployeeDbContext"
    
  • 参数说明
    • -Project:指定实体类、DbContext的输出项目,此处填类库项目名即可
    • -StartupProject:指定EF工具运行时使用的启动项目,选择可正常运行的Web项目即可,避免类库无法独立启动导致工具运行报错
    • -OutputDir、-ContextDir的路径是相对于-Project指定项目的根目录解析的,执行后会自动在类库项目下创建对应文件夹存放生成文件。
  • 补充:后续如果需要重新生成覆盖已有文件,在命令末尾加-Force参数即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 20:06:09