EFCorePowerTools
Copilot instructions2.5k starsChanged 19 months agoMITView on GitHub
EF Core Power Tools is a comprehensive toolkit for Entity Framework Core development consisting of a Visual Studio extension (VSIX), command-line tools (CLI), and supporting libraries. It enables reverse engineering of databases into EF Core models, provides data visualization tools, and includes advanced scaffolding capabilities. Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
Trending
More talk lately.about the whole repository
Who's talking about ErikEJ/EFCorePowerTools
- Stack Overflow“Is there a way to programmatically check pending model changes in Entity Framework Core?”Stack Overflow · Nov 15, 2021 · 9 votes
- Stack Overflow“How to manage multiple dbcontext in same project with EF Core Power Tools?”Stack Overflow · Nov 16, 2020 · 9 votes
- Stack Overflow“Blazor with Database First”Stack Overflow · Jan 29, 2020 · 9 votes
- Stack Overflow“Remove tableprefix with .net Core”Stack Overflow · Apr 6, 2020 · 4 votes
- Stack Overflow“Scaffold EF Core entities with interface”Stack Overflow · Jun 6, 2019 · 3 votes
The biggest 5 of 44 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 44
Talked about on GitHub and Stack Overflow (44 times).
On GitHub · 30
- Dec 30, 2025[Bug]: dnx not being used with .NET 10 project — JerrettDavis/JD.Efcpt.Build2 reactions · 1 comment
- Oct 25, 2022EF Core 7 Rev eng: Missing HasForeignKey when referencing a navigation property with a unique constraint with DataAnnotations on — dotnet/efcore2 reactions · 18 comments
- Mar 19, 2026create shared library — ErikEJ/SqlProjectPowerTools1 reaction
- Mar 12, 2026Refactor Diagramming and DAB integration to not depend on EF Core — ErikEJ/SqlProjectPowerTools1 reaction
- Feb 15, 2026Port DAB Builder fixes from EF Core Power Tools — ErikEJ/SqlProjectPowerTools1 reaction
25 more on GitHub
- Jan 12, 2026Shows same node for solution with multiple VSIX projects — madskristensen/VsixTreeViewer1 reaction · 2 comments
- Nov 20, 2022Upgrade to EF Core 7 — TrackableEntities/EntityFrameworkCore.Scaffolding.Handlebars1 reaction · 1 comment
- Feb 23, 2022Scaffolding with NRT generates non-nullable navigation property from principal to dependent — dotnet/efcore1 reaction · 4 comments
- Aug 17, 2019Feature proposal - [REVENG] Add a default pluralizer implementation — dotnet/efcore1 reaction · 3 comments
- Oct 1, 2026Vector information missing from TSqlModel — microsoft/DacFx0 reactions
- Apr 1, 2026chore: showcase issue 3341 — nmummau/EFCorePowerTools0 reactions
- Mar 19, 2026Create Shared project for Vsix shareable code — ErikEJ/SqlProjectPowerTools0 reactions
- Mar 14, 2026Refactor Diagramming and DAB integration to use TSqlModel directly (remove EF Core dependency) — ErikEJ/SqlProjectPowerTools0 reactions
- Feb 15, 2026Port DAB Builder fixes from EF Core Power Tools — ErikEJ/SqlProjectPowerTools0 reactions
- Jan 12, 2026Fix: Support multiple VSIX projects in solution — madskristensen/VsixTreeViewer0 reactions
- Jan 4, 2026Fix template config file: remove invalid sections and experimental features — JerrettDavis/JD.Efcpt.Build0 reactions · 4 comments
- Dec 30, 2025Fix dnx not being used for .NET 10+ target frameworks — JerrettDavis/JD.Efcpt.Build0 reactions · 8 comments
- Oct 30, 2024[Bug]: nullable properties not supported in openapi doc — Azure/data-api-builder0 reactions · 3 comments
- Mar 13, 2024Load DDEX earlier — npgsql/npgsql0 reactions · 2 comments
- Dec 3, 2022Invalid database-first mapping for MySQL DateTime(6) — PomeloFoundation/Pomelo.EntityFrameworkCore.MySql0 reactions · 5 comments
- Apr 28, 2022ErikEJ.EntityFrameworkCore.DgmlBuilder 2.1.1 — clearlydefined/curated-data0 reactions · 2 comments
- Mar 29, 2022SqlMarshal and other type-safe database access layers — kant2002/SqlMarshal0 reactions · 3 comments
- Nov 15, 2021Bump ErikEJ.EntityFrameworkCore.DgmlBuilder from 5.0.0 to 6.0.0 in /src — dpvreony/whipstaff0 reactions · 2 comments
- Sep 9, 2021Bump ErikEJ.EntityFrameworkCore.DgmlBuilder from 3.1.4 to 5.0.0 in /src — dpvreony/whipstaff0 reactions · 1 comment
- Jul 14, 2021Bump ErikEJ.EntityFrameworkCore.DgmlBuilder from 3.1.1 to 3.1.4 in /src — dpvreony/whipstaff0 reactions · 1 comment
- Apr 26, 2021Add end-to-end reverse engineer tests with SqlServer-specific schema features — dotnet/efcore0 reactions · 3 comments
- Mar 16, 2021给其他发现此库的人推荐一个更好用的工具:EF Core Power Tools — SeeSharply/PropEntity0 reactions
- Jun 2, 2020Bump ErikEJ.EntityFrameworkCore.DgmlBuilder from 3.1.0 to 3.1.1 in /src — dpvreony/whipstaff0 reactions · 1 comment
- Apr 20, 2020Bump ErikEJ.EntityFrameworkCore.DgmlBuilder from 3.0.0 to 3.1.0 in /src — dpvreony/whipstaff0 reactions · 1 comment
- Apr 13, 2020Recommend certain extensions directly from the docs — dotnet/EntityFramework.Docs0 reactions
On Stack Overflow · 14
- Nov 15, 2021Is there a way to programmatically check pending model changes in Entity Framework Core?9 votes
- Nov 16, 2020How to manage multiple dbcontext in same project with EF Core Power Tools?9 votes
- Jan 29, 2020Blazor with Database First9 votes
- Apr 6, 2020Remove tableprefix with .net Core4 votes
- Jun 6, 2019Scaffold EF Core entities with interface3 votes
9 more on Stack Overflow
- Jan 6, 2019How can I recognize an ASP.NET Core project in a Visual Studio extension3 votes
- Jan 28, 2021Entity Framework Core Database First not render Model of Stored Procedure?2 votes
- Jul 14, 2018Reverse Engineer Fails EF Core Power Tools2 votes
- Feb 4, 2025EF core power tools and handlebars template1 vote · 1 answer
- May 8, 2024EF Power Tools - generating customization1 vote
- Jul 8, 2023ASP.NET Core Web API, EF 7, scaffolding stored procedures is not creating working code for SQL Server model generated by EF Core Power Tools1 vote
- Sep 7, 2020Is there any way to create EF mapping classes using Visual Studio or other tools from a SQLite Database?1 vote
- Apr 6, 2020Renaming for .net core application in diffrent efpt.renaming.json files1 vote
- Apr 1, 2022.NET Core 6 migration error: Cannot use table 'AspNetRoleClaims' for entity type 'IdentityRoleClaim<string>'0 votes
Where files are headingNew Copilot instructions files have more rules about branches and pull requests, and fewer about code style.
Of the Copilot instructions files we read, the 2,336 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
The file
We split this copilot-instructions.md into the rules it gives an agent
12 rules. About 0 are common, 8 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈8
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 5
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does …
- Distinctive: line 13
All EF Core 8 and CLI tools work perfectly with .NET 8.0 SDK
- Distinctive: line 41
ALWAYS test CLI functionality: after making changes:
- Very specific: line 43
Create test directory: mkdir /tmp/efcpt_test && cd /tmp/efcpt_test
- Very specific: line 44
Test with sample dacpac: Copy from test/ScaffoldingTester/Chinook/obj/Debug/netstandard2.1/ErikEJ.Dacpac.Chinook.dacpac
- Very specific: line 46
Verify: Generated models in Models/ directory and config file efcpt-config.json
- Very specific: line 47
Test config modification: Edit efcpt-config.json, change "use-data-annotations": true, re-run
- Distinctive: line 48
Verify: Data annotations added to generated classes
- Distinctive: line 64
Verify output: Check Models directory, configuration file, readme
- Distinctive: line 69
Verify changes reflected in generated code
- Distinctive: line 142
Always use NEVER CANCEL warnings and appropriate timeout values
- Distinctive: line 145
Always validate end-to-end scenarios: build → install → test → verify output
≈ “Common” is an estimate: at least 1 in 5 of the 3,779 Copilot instructions files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
EF Core Power Tools
EF Core Power Tools is a comprehensive toolkit for Entity Framework Core development consisting of a Visual Studio extension (VSIX), command-line tools (CLI), and supporting libraries. It enables reverse engineering of databases into EF Core models, provides data visualization tools, and includes advanced scaffolding capabilities.
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
Working Effectively
Prerequisites and Setup
- CRITICAL: This repository requires .NET 10.0 SDK preview for full functionality, but core components work with .NET 8.0 SDK
- For development with .NET 8.0 SDK only:
{"sdk": {"version": "8.0.119", "allowPrerelease": false, "rollForward": "latestFeature"}} - Projects requiring .NET 10:
RevEng.Core.100,efreveng100,efcpt.10,efpt100.core(will fail with .NET 8 SDK) - All EF Core 8 and CLI tools work perfectly with .NET 8.0 SDK
Build and Test the Repository
- Navigate to repository root:
cd /home/runner/work/EFCorePowerTools/EFCorePowerTools - Building core CLI tools (EF Core 8):
cd src/Core/efcpt.8 && dotnet build-- takes 15-20 seconds from clean. NEVER CANCEL. Set timeout to 60+ seconds.cd src/Core/efreveng80 && dotnet build-- takes 10-15 seconds from clean. NEVER CANCEL. Set timeout to 60+ seconds.
- Running tests:
cd src/Core/NUnitTestCore && dotnet test-- takes 20-25 seconds. NEVER CANCEL. Set timeout to 120+ seconds.- Tests: 74 passed, 3 skipped (normal behavior)
- Building dacpac projects:
cd test/ScaffoldingTester/Chinook && dotnet build-- takes 7-10 seconds. NEVER CANCEL. Set timeout to 60+ seconds.
CLI Tool Installation and Usage
- Install globally:
dotnet tool install ErikEJ.EFCorePowerTools.Cli -g --version 8.* - Update globally:
dotnet tool update ErikEJ.EFCorePowerTools.Cli -g --version 8.* - Basic usage:
efcpt --help(takes 1-2 seconds to run) - Test with dacpac:
efcpt path/to/file.dacpac mssql(takes 3-5 seconds for typical database)
Visual Studio Extension (VSIX)
- The main solution
src/EFCorePowerTools.slnxbuilds the VSIX but requires Windows and Visual Studio build tools - CRITICAL: VSIX building requires Windows environment with MSBuild and Visual Studio SDK
- On Linux: Can build core components but not the full VSIX package
- Build workflow uses specific CMD scripts in
src/Core/efreveng*/BuildCmdlineTool.cmd
Validation
Essential Validation Scenarios
- ALWAYS test CLI functionality after making changes:
- Install/update CLI tool globally:
dotnet tool update ErikEJ.EFCorePowerTools.Cli -g --version 8.* - Create test directory:
mkdir /tmp/efcpt_test && cd /tmp/efcpt_test - Test with sample dacpac: Copy from
test/ScaffoldingTester/Chinook/obj/Debug/netstandard2.1/ErikEJ.Dacpac.Chinook.dacpac - Run:
efcpt ErikEJ.Dacpac.Chinook.dacpac mssql - Verify: Generated models in
Models/directory and config fileefcpt-config.json - Test config modification: Edit
efcpt-config.json, change"use-data-annotations": true, re-run - Verify: Data annotations added to generated classes
- Install/update CLI tool globally:
- ALWAYS run core tests to ensure no regressions:
cd src/Core/NUnitTestCore && dotnet test-- NEVER CANCEL, wait 2+ minutes
- Build validation timing expectations:
- Clean CLI build: 15-20 seconds
- Incremental CLI build: 3-5 seconds
- Test suite: 20-25 seconds
- Dacpac build: 7-10 seconds
- CLI tool execution: 3-5 seconds
Manual Testing Workflows
- Reverse Engineering Workflow:
- Build dacpac:
cd test/ScaffoldingTester/Chinook && dotnet build - Test CLI:
efcpt path/to/dacpac.dacpac mssql - Verify output: Check Models directory, configuration file, readme
- Build dacpac:
- Configuration Testing:
- Modify
efcpt-config.jsonsettings (data annotations, namespaces, etc.) - Re-run CLI command
- Verify changes reflected in generated code
- Modify
- Build System Validation:
- Clean build test:
dotnet clean && dotnet build - Dependency verification: Check all referenced packages restore correctly
- Clean build test:
Common Tasks
Frequently Used Commands
# Core development workflow
cd /home/runner/work/EFCorePowerTools/EFCorePowerTools
# Build CLI 8 tool
cd src/Core/efcpt.8 && dotnet build
# Run tests
cd src/Core/NUnitTestCore && dotnet test
# Build test dacpac
cd test/ScaffoldingTester/Chinook && dotnet build
# Install/update CLI globally
dotnet tool update ErikEJ.EFCorePowerTools.Cli -g --version 8.*
# Test CLI with dacpac
cd /tmp && mkdir test_efcpt && cd test_efcpt
cp /home/runner/work/EFCorePowerTools/EFCorePowerTools/test/ScaffoldingTester/Chinook/obj/Debug/netstandard2.1/ErikEJ.Dacpac.Chinook.dacpac .
efcpt ErikEJ.Dacpac.Chinook.dacpac mssqlRepository Structure Overview
src/
├── Core/ # Core reverse engineering libraries and CLI tools
│ ├── efcpt.8/ # CLI tool for EF Core 8 (builds with .NET 8 SDK)
│ ├── efreveng80/ # Reverse engineering tool for EF Core 8
│ ├── RevEng.Core.80/ # Core reverse engineering library for EF Core 8
│ ├── efcpt.10/ # CLI tool for EF Core 10 (requires .NET 10 SDK)
│ └── NUnitTestCore/ # Core test suite (74 tests)
├── GUI/ # Visual Studio extension components
│ ├── EFCorePowerTools/ # Main VSIX project (Windows/VS only)
│ └── Shared/ # Shared GUI components
└── Nupkg/ # NuGet packages
test/
├── ScaffoldingTester/ # Test applications and sample databases
│ └── Chinook/ # Sample dacpac for testing
samples/ # Configuration examples and schemas
├── efcpt-config.json # Complete sample configuration
└── efcpt-config.schema.json # JSON schemaCommon Configuration Files
global.json: SDK version requirementssrc/Directory.Build.props: MSBuild common properties, analyzers, code stylesrc/EFCorePowerTools.slnx: Main solution (includes VSIX projects)samples/efcpt-config.json: Complete CLI configuration example.editorconfig: Code style and formatting rules
Development Workflow Timing
| Operation | Expected Time | Timeout Setting |
| CLI build (clean) | 15-20s | 60s |
| CLI build (incremental) | 3-5s | 30s |
| Test suite | 20-25s | 120s |
| Dacpac build | 7-10s | 60s |
| CLI execution | 3-5s | 30s |
| Tool install/update | 10-15s | 60s |
CRITICAL REMINDERS:
- NEVER CANCEL builds or tests - they may appear to hang but are working
- Always use NEVER CANCEL warnings and appropriate timeout values
- EF Core 10 projects require .NET 10 SDK - modify global.json if needed
- CLI tools are the primary way to test functionality outside Visual Studio
- Always validate end-to-end scenarios: build → install → test → verify output
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

