关于 tooling
Entity Framework Core 开发技能,涵盖迁移、脚手架和编译模型生成所用的命令行、PowerShell 与 MSBuild 入口,并说明命令参数流转、测试和验证方式。
主要功能
- 01使用 dotnet ef 管理迁移与脚手架
- 02通过 PMC 执行数据库命令
- 03使用 MSBuild 生成编译模型
- 04追踪命令选项的处理位置
- 05提供测试与验证指引
适用场景
- 01修改 dotnet ef 命令行为
- 02调整 PMC 命令或模块
- 03验证编译模型生成任务
- 04检查迁移脚本输出
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dotnet/ efcore --skill tooling安装后在 Claude Code 中输入/tooling确认已加载。
详细介绍
工具链
用于迁移、架构生成和已编译模型的 dotnet ef CLI 与 Visual Studio Package Manager Console 命令。
dotnet-ef CLI(src/dotnet-ef/)
RootCommand 解析全局选项。子命令实现在 src/ef/Commands/ 中。每个子命令都会调用 MSBuild 进行构建,然后通过 dotnet exec ef.dll 启动进程;该程序集承载 OperationExecutor。
PMC(src/EFCore.Tools/)
PowerShell 模块:Add-Migration、Update-Database、Scaffold-DbContext、Optimize-DbContext 等。
MSBuild 任务(src/EFCore.Tasks/)
NuGet 包 Microsoft.EntityFrameworkCore.Tasks 提供构建/发布时的已编译模型和预编译查询生成。目标位于 buildTransitive/Microsoft.EntityFrameworkCore.Tasks.targets。
命令选项归属
更改命令或操作契约前,先追踪选项,找到实际使用它的代码。外层 dotnet-ef 启动器会构建项目,并将剩余命令行参数转发给 ef.dll;src/ef/Commands/ 中的内层命令会解析特定于命令的选项。
- 仅在内层命令中保留纯展示行为。例如,要禁止显示
MigrationsAddCommand.Execute()的完成消息,应对其Reporter.WriteInformation()调用添加保护,而不能更改IOperationExecutor.AddMigration()。 - 只有当
Microsoft.EntityFrameworkCore.Design中的设计时操作需要某个值时,才通过OperationExecutorBase转发该值。 - 将 PMC 和
EFCore.Tasks视为独立入口。只有当请求的行为也适用于这些入口时,才更改它们。
测试
- CLI 测试:
test/dotnet-ef.Tests/、test/ef.Tests/ - EFCore.Tasks 没有专用测试项目——对于任务/目标更改,请创建测试项目,并手动运行
dotnet build/dotnet publish,同时设置EFOptimizeContext=true进行验证
验证
- 对于工具更改,请创建测试项目并手动运行受影响的命令,以验证行为
dotnet ef migrations script的输出应与预期 DDL 相符
评论
支持 Markdown