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

ASP.NET Core数据库优先脚手架拆分DbContext与模型类重复生成问题

ASP.NET Core Database First 多项目架构脚手架使用方案

你遇到的执行脚手架命令重复生成文件的问题,可通过调整命令参数、执行上下文解决,具体操作如下:

  • 先确认包管理器控制台(PMC)的「默认项目」选中你存放DbContext的SampleArchitecture.Infrastructure项目,不要选择启动项目作为默认执行项目,避免路径识别错位
  • 替换原有绝对路径命令为项目相对路径命令,调整后的命令如下:
Scaffold-DbContext "Data Source=.;Initial Catalog=TestDB;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer -ContextDir Data -OutputDir "..\SampleArchitecture.Core\Entities" -Force -NoOnConfiguring
  • 各优化参数说明:
    • 相对路径替代绝对路径:-ContextDir Data直接在当前选中的Infrastructure项目的Data目录生成DbContext,-OutputDir ..\SampleArchitecture.Core\Entities回退到上级目录后定位Core项目的Entities目录存放实体类,避免绝对路径识别异常导致的重复生成文件问题
    • -NoOnConfiguring:不会在DbContext中重复生成连接字符串配置的OnConfiguring方法,适配多项目架构下连接配置统一存放在启动项目的场景
    • 如需仅更新单个表而非全量覆盖所有实体,可追加-Tables 目标表名参数,例如只更新User表就添加-Tables User
  • 额外注意事项:
    • 执行命令前确认目标文件夹下的文件没有被锁定、没有处于IDE编辑状态,避免生成冲突
    • 确保SampleArchitecture.Infrastructure和SampleArchitecture.Core两个项目都安装了和你使用的EF Core版本一致的Microsoft.EntityFrameworkCore.Design包,避免版本不兼容导致的生成异常
    • 如果你使用.NET CLI 而非包管理器控制台,对应命令如下:
dotnet ef dbcontext scaffold "Data Source=.;Initial Catalog=TestDB;Integrated Security=True" Microsoft.EntityFrameworkCore.SqlServer --context-dir Data --output-dir ../SampleArchitecture.Core/Entities --force --no-onconfiguring

内容的提问来源于stack exchange,提问作者Usama Tabbassum

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:57:04