1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | efcore-d2-db-diagram-github-awesome-copilot |
| 作者/维护者 | GitHub(github/awesome-copilot 官方合集仓库,本子技能由社区贡献者提交、经官方审核合并) |
| 来源链接 | https://github.com/github/awesome-copilot/tree/main/skills/efcore-d2-db-diagram |
| 许可证 | MIT(仓库级,来自 GitHub API) |
| GitHub Stars | 38,772(GitHub API,属整个 awesome-copilot 合集,不代表本技能自身热度) |
| Forks | 4,909(GitHub API,同上,属合集整体) |
| 最新版本 | 无独立版本号,随仓库持续更新;本技能内容最近一次改动为 2026-05-25 |
| 安装方式 | gh skills install github/awesome-copilot efcore-d2-db-diagram(需 GitHub CLI v2.90.0+)或手动复制 skills/efcore-d2-db-diagram/ 整个目录(含 references/ 子目录)到本地 skills 目录 |
2. 功能介绍与亮点
efcore-d2-db-diagram 是一个从 .NET Entity Framework Core 代码库自动生成数据库结构图(D2 格式)的技能。核心能力包括:
- 多来源模型提取:按优先级依次读取最新迁移文件、
OnModelCreating/IEntityTypeConfiguration<T>中的 Fluent API 配置、数据注解,最后才回退到 EF Core 约定与原始 C# 类结构,确保图表反映的是数据库真实持久化模型而非代码表面结构。 - 完整的关系与约束识别:自动识别主键(含复合键)、外键与删除行为(Cascade/Restrict/NoAction 等)、拥有类型(Owned Types)、多对多关联表(含隐式 join 表)、索引与唯一约束、影子属性等 EF Core 特有概念。
- 生成前强制澄清问询:每次生成或重新生成图表前,会就 DbContext 选择、列显示粒度、分组模式(按限界上下文/schema/命名空间/扁平)、布局引擎等 13 项参数向用户确认,避免生成一份用户不需要的图。
- 配套 5 份参考文档:
efcore-model-extraction.md(模型提取规则)、d2-erd-style.md(D2 语法与视觉规范)、relationship-rules.md(关系推断规则)、grouping-modes.md(分组模式规则)、quality-gate.md(交付前质检清单),按需加载,主文档保持精简。 - 交付前质检清单:生成的 D2 文件需通过
d2 fmt语法校验,并逐项核对主外键、多对多表、隐藏的技术表(如迁移历史表、Identity 表)等是否处理妥当,再交付渲染命令。
3. 适用场景
固定分类:数据分析与可视化
面向使用 Entity Framework Core 的 .NET / ASP.NET Core 开发者与架构师,适用于为项目补充数据库结构文档、code review 前梳理表间关系、排查迁移引入的 schema 变化,或为团队新人提供一份可视化的数据库全景图。生成的 .d2 源码可用 d2 CLI 渲染为 SVG/PNG,便于嵌入 Wiki 或技术文档。
分类判定:数据分析与可视化|依据:规则 B——核心动作是把既有数据模型转换为可视化图表输出,产出物是图表而非代码或审查意见|最近邻:drawio-skill(数据分析与可视化)、archify(数据分析与可视化)、azure-resource-visualizer-microsoft-azure-skills(DevOps 与基础设施)|一致(同类“从结构化输入生成架构图”的技能均落在数据分析与可视化)
4. 跨 Agent 兼容性
- Claude Code:✅ 原生支持——标准 Agent Skills 格式(SKILL.md + YAML front matter + references 子目录),复制到
.claude/skills/目录即可使用。 - Codex:✅ 原生支持——Codex CLI 官方文档明确其技能系统构建在同一开放的 Agent Skills 标准之上。
- OpenClaw:未验证。
- Hermes Agent:未验证。
5. 推荐理由
数据库结构文档很容易在项目迭代中过期,而手工画 ERD 图费时且容易遗漏 EF Core 隐式生成的多对多表、影子属性等细节。这个技能把“读代码 → 建模型 → 出图”的过程标准化,且优先读取迁移文件与 Fluent API 配置而非猜测 C# 类结构,生成的图表更贴近数据库的真实形态。5 份参考文档把提取规则、渲染规范、质检标准都写清楚,不是一份空泛的“帮我画个图”提示词,对独立开发者或没有专职 DBA 的小团队补齐数据库文档是一个低成本方案。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 7 | GitHub 官方合集仓库出品,经官方审核合并;该子技能自身尚无独立于合集之外的第三方热度证据 |
| 可用性 | 8 | 主文档 + 5 份参考文档结构完整、含大量示例代码块,生成 D2 源码本身无需额外依赖;渲染为 SVG/PNG 需额外安装开源 d2 CLI 工具(免费无付费依赖);内容近期(2026-05-25)经审核合并,在 6 个月维护窗口内 |
| 安全性 | 9 | 纯提示词/指令类技能,不联网外发数据、不要求任何 API Key 或凭据;本地执行的 d2 CLI 渲染命令是开源格式化工具调用,范围明确可审计;通读全文未发现夹带指令或 prompt injection 迹象 |
安全检查清单:
① Shell 命令执行——仅调用本地 d2/d2 fmt 命令渲染与格式化图表文件,无其他系统操作。
② 联网外发——无,全程本地读取代码与生成文件。
③ API Key/凭据——不需要。
④ 可疑指令——通读全文(含 5 份参考文档)未发现夹带指令或 prompt injection 迹象。
⑤ 作者/组织信誉——GitHub 官方合集仓库出品,经官方审核合并。
⑥ License——MIT,明确。
⑦ 最近维护——技能内容最近一次改动 2026-05-25(约 3.5 个月前),仓库整体每日有提交。
综合评分 = (7+8+9)/3 = 8.0
7. 跟同类 Skills 相比的优势
| 工具/技能 | 定位 | 与本技能的差异 |
|---|---|---|
| EFCorePowerTools(Visual Studio 扩展/CLI 工具) | 逆向工程、迁移管理、模型可视化的综合 IDE 工具集 | 是独立安装的 VS 扩展/dotnet 工具,非 Agent Skill,需要在 IDE 中手动操作生成图;本技能是对话式触发,由 Agent 直接读代码产出 D2 源码 |
| ef-db-diagrams(独立 GitHub 项目) | 用命令行工具从 EF Core 程序集反射生成图表 | 依赖编译后的程序集反射,无法读取尚未编译的 Fluent API 意图;本技能直接读取源码与迁移文件,且以标准 Agent Skill 形式集成进编码流程 |
| drawio-skill(通用架构图技能) | 面向通用系统架构图的绘制,输入是用户描述的组件与关系 | 通用性更强但不理解 EF Core 特有概念(拥有类型、影子属性、隐式多对多表);本技能专精 EF Core 模型提取,产出更贴近真实数据库 schema |
本技能与上述工具互补:需要在 IDE 内做交互式迁移管理时可用 EFCorePowerTools;需要绘制不限于数据库的通用系统架构图时用 drawio-skill;日常在 Agent 对话流程中快速生成一份准确反映当前 EF Core 模型的数据库图,则是本技能的定位。
8. 用户评价
该技能目前在第三方平台(GitHub Discussions、Reddit、Hacker News 等)尚无具名用户评价。提交该技能的 Pull Request 在合并前经过 5 条官方审核意见,审核通过后于 2026-05-25 合并入库。
9. 其他补充
生成图表前的强制问询机制(13 项参数,含默认值)意味着即便用户只说“画个数据库图”,Agent 也会先确认关键选项(如是否显示列类型、是否隐藏技术表)而不是直接猜测输出,减少返工。技能内置的“来源优先级”规则(迁移文件 > Fluent API > 数据注解 > EF 约定 > 原始类结构)是应对 EF Core 项目中配置分散、C# 类形态与实际表结构不一致这一常见痛点的针对性设计。
10. 安装使用方式
方式一(GitHub CLI,推荐):
gh skills install github/awesome-copilot efcore-d2-db-diagram
需要 GitHub CLI v2.90.0 及以上版本。
方式二(手动安装):
将仓库中的 skills/efcore-d2-db-diagram/ 整个目录(含 SKILL.md 与 references/ 子目录共 5 份参考文档)复制到本地 Agent 的 skills 目录(如 Claude Code 的 .claude/skills/),无需重启,下次触发相关任务时会被自动发现。
安装后,在 EF Core 项目中向 Agent 提出“生成一份数据库结构图”一类的请求即可触发;若需要渲染为可视化图片,需额外安装开源 d2 CLI(brew install d2 或官方安装脚本),随后按技能给出的渲染命令执行。
11. 注意事项
- 本技能只产出
.d2源码文件与渲染命令,实际渲染为 SVG/PNG 需要用户或 Agent 另行执行本地d2CLI,技能本身不代为安装该工具。 - 仅适用于 Entity Framework Core(.NET/C#)项目,不支持其他 ORM 或非 .NET 技术栈。
- 内容以英文撰写,中文使用者需要 Agent 做一次转述。
- 当项目 EF Core 配置较为复杂(大量自定义 Fluent API、多层继承映射)时,建议先小范围验证生成结果的准确性,再用于正式文档交付。