Reverse engineering, model visualization and migrations UI for EF Core. For Visual Studio 2019 and 2022.
Aims to lower the bar for getting started with EF Core, by providing GUI based assistance with reverse engineering of an existing database, creating migrations and visualizing your DbContext model.
Quick Start and 10 minute intro video
Demo video - Advanced features
EF Core Power Tools presentation
My tools and utilities for embedded database development
The tool and GitHub based support is free, but I would be very grateful for a rating or review here, and I also appreciate sponsorships
Reverse Engineering Quick Start
.NET Framework 4.7.2 or later is required. For EF Core reverse engineering, .NET Core 3.1 x64 runtime must be installed.
Download the latest version of the Visual Studio extension from Visual Studio MarketPlace
Or just install from the Extensions dialog in Visual Studio.
You can download the daily build from Open VSIX Gallery
Ensure you always have the latest daily build (if you are brave) by installing this extension
ErikEJ.EntityFrameworkCore.DgmlBuilder
Adds the AsDgml() extension method to any derived DbContext. The method will create a DGML graph of your DbContext Model, that you can then view in the Visual Studio DGML viewer
ErikEJ.EntityFrameworkCore.SqlServer.Dacpac
Reverse engineer a SQL Server .dacpac with the EF Core tooling
ErikEJ.EntityFrameworkCore.SqlServer.SqlQuery
Materialize abritary classes and scalar values from EF Core using raw SQL
If you encounter a bug or have a feature request, please use the Issue Tracker. The project is also open for pull requests following standard pull request guidelines
To build and debug, run latest version of Visual Studio as Administrator with the "Visual Studio extension development workload" installed. Make EFCorePowerTools the startup project, and ensure your build configuration is Debug, AnyCPU.
You can smoke test changes to reverse engineering. Launch one of the efreveng console apps in the debugger using the name of a file in the TestFiles folder as parameter.
In the ScaffoldingTester solution there are scripts to populate Northwind and Chinook databases with the required objects.