关于 scaffolding
用于处理 EF Core Scaffolding 的技能,可将数据库架构反向工程为 C# 代码。它说明 Scaffolding 管线,并指导在适配能力受限的数据库引擎时保留架构查询行为。
主要功能
- 01说明反向工程管线
- 02介绍 Scaffolder 的编排作用
- 03保留反半连接语义
- 04覆盖架构元数据边界情况
适用场景
- 01追踪架构到代码的生成阶段
- 02将架构查询适配到受限引擎
- 03检查排除属性的筛选逻辑
- 04测试架构查询中的元数据情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ dotnet/ efcore --skill scaffolding安装后在 Claude Code 中输入/scaffolding确认已加载。
详细介绍
脚手架
根据数据库架构生成 C# 代码(反向工程)。
不适用场景
- 处理已编译模型的生成(
dotnet ef dbcontext optimize)
反向工程
流程:IDatabaseModelFactory(读取架构)→ IScaffoldingModelFactory(构建 EF 模型)→ IModelCodeGenerator(生成 C#)
IReverseEngineerScaffolder— 统筹完整流程
架构查询兼容性
提供程序的架构读取器通常会查询一对多元数据表。为受限引擎调整 SQL 时,应保留反半连接语义:在 ON 中包含完整排除属性谓词的 LEFT JOIN,后接对非空连接键的空值筛选,等价于 NOT EXISTS。无关元数据行不会匹配;任何匹配的排除行都会使连接键非空,从而排除该对象。不要将排除属性谓词的部分条件移到 WHERE,也不要连接所有元数据行后再逐行筛选。等价的非相关反集合形式(例如 NOT IN (SELECT key ... WHERE excluded-condition))也可行,前提是子查询不会返回空键。应覆盖没有元数据、仅有无关元数据、仅有排除属性,以及同时存在排除属性和无关属性的对象。
评论
支持 Markdown