How to use
- Copy the installation command and review the source package before installing it in your own agent environment.
- Check the source document for required tools, credentials and supported hosts.
- Describe your input and desired deliverable; review the output against the source material.
npx skills add https://github.com/dotnet/efcore --skill toolingBefore you start
- Installation does not include a model subscription, API allowance or permission to access your files.
- Repository stars and installation counts describe activity, not an independent quality or security test.
Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.
Tooling
The dotnet ef CLI and Visual Studio Package Manager Console commands for migrations, scaffolding, and compiled models.
dotnet-ef CLI (src/dotnet-ef/)
RootCommand parses global options. Subcommands implemented in src/ef/Commands/. Each invokes MSBuild to build, then shells out via dotnet exec ef.dll, which hosts OperationExecutor.
PMC (src/EFCore.Tools/)
PowerShell module: Add-Migration, Update-Database, Scaffold-DbContext, Optimize-DbContext, etc.
MSBuild Tasks (src/EFCore.Tasks/)
NuGet package Microsoft.EntityFrameworkCore.Tasks provides build/publish-time compiled model and precompiled query generation. Targets in buildTransitive/Microsoft.EntityFrameworkCore.Tasks.targets.
Command Option Ownership
Trace an option to the code that consumes it before changing command or operation contracts. The outer dotnet-ef launcher builds the project and forwards remaining command-line arguments to ef.dll; the inner command under src/ef/Commands/ parses command-specific options.
- Keep presentation-only behavior in the inner command. For example, suppressing the completion message from
MigrationsAddCommand.Execute()should guard itsReporter.WriteInformation()call and must not changeIOperationExecutor.AddMigration(). - Forward a value through
OperationExecutorBaseonly when the design-time operation inMicrosoft.EntityFrameworkCore.Designneeds it. - Treat PMC and
EFCore.Tasksas separate entry points. Change them only when the requested behavior applies to those surfaces too.
Testing
- CLI tests:
test/dotnet-ef.Tests/,test/ef.Tests/ - EFCore.Tasks has no dedicated test project — for task/target changes, create a test project and manually run
dotnet build/dotnet publishwithEFOptimizeContext=trueto verify
Validation
- For tool changes, create a test project and manually run affected commands to verify behavior
dotnet ef migrations scriptoutput matches expected DDL



