dotnet/efcore

tooling

Implementation details for the EF Core dotnet-ef CLI and tooling.

Voir la source

Mode d’emploi

  1. Copiez la commande et examinez le paquet avant de l’installer dans votre environnement agent.
  2. Consultez le document original pour les outils, identifiants et environnements requis.
  3. Décrivez les entrées et le livrable souhaité ; comparez la sortie aux sources.
npx skills add https://github.com/dotnet/efcore --skill tooling

Avant de commencer

  • L’installation n’inclut ni abonnement au modèle, ni quota API, ni accès aux fichiers.
  • Étoiles et installations reflètent l’activité, pas un test indépendant de qualité ou de sécurité.
Document Skill original

Rendu depuis le dépôt source en conservant titres, exemples, code, tableaux, liens et images.

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 its Reporter.WriteInformation() call and must not change IOperationExecutor.AddMigration().
  • Forward a value through OperationExecutorBase only when the design-time operation in Microsoft.EntityFrameworkCore.Design needs it.
  • Treat PMC and EFCore.Tasks as 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 publish with EFOptimizeContext=true to verify

Validation

  • For tool changes, create a test project and manually run affected commands to verify behavior
  • dotnet ef migrations script output matches expected DDL

Tâches connexes