mcpField
S
scaffolding

scaffolding

github.com/dotnetDevelopment14.8k47 installsUpdated today
Repository

About scaffolding

A skill for working on EF Core scaffolding, which reverse engineers database schemas into C# code. It outlines the scaffolding pipeline and gives guidance for preserving schema-query behavior when adapting provider SQL to limited database engines.

Key features

  1. 01Describe the reverse-engineering pipeline
  2. 02Explain scaffolder orchestration
  3. 03Preserve anti-semi join semantics
  4. 04Cover schema metadata edge cases

Use cases

  1. 01Trace schema-to-code generation stages
  2. 02Adapt provider schema queries to limited engines
  3. 03Review excluded-property filtering logic
  4. 04Test metadata cases in schema queries

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dotnet/efcore --skill scaffolding

After installing, type/scaffoldingin Claude Code to confirm it loaded.

Details

From the project README

Scaffolding

Generates C# code from database schemas (reverse engineering).

When Not to Use

  • Working on compiled model generation (dotnet ef dbcontext optimize)

Reverse Engineering

Pipeline: IDatabaseModelFactory (reads schema) → IScaffoldingModelFactory (builds EF model) → IModelCodeGenerator (generates C#)

  • IReverseEngineerScaffolder — orchestrates full pipeline

Schema Query Compatibility

Provider schema readers often query one-to-many metadata tables. Preserve anti-semi semantics when adapting SQL for a limited engine: a LEFT JOIN containing the complete excluded-property predicate in ON, followed by a null filter on a non-nullable joined key, is equivalent to NOT EXISTS. Unrelated metadata rows do not join; any matching excluded row makes the joined key non-null and excludes the object. Do not move parts of the excluded-property predicate to WHERE or join all metadata rows and filter individual rows afterward. An equivalent non-correlated anti-set form, such as NOT IN (SELECT key ... WHERE excluded-condition), also works when the subquery cannot return null keys. Cover objects with no metadata, unrelated metadata only, the excluded property only, and both excluded and unrelated properties.

Comments

Markdown supported