tooling について
Entity Framework Core の開発スキルです。マイグレーション、スキャフォールディング、コンパイル済みモデル生成に使う CLI、PowerShell、MSBuild の各入口と、オプションの流れや検証方法を説明します。
主な機能
- 01dotnet ef によるマイグレーションとスキャフォールディング
- 02PMC によるデータベース操作
- 03MSBuild によるコンパイル済みモデル生成
- 04コマンドオプションの処理箇所の追跡
- 05テストと検証の手順
活用シーン
- 01dotnet ef のコマンド動作の変更
- 02PMC コマンドやモジュールの変更
- 03コンパイル済みモデル生成タスクの検証
- 04マイグレーションスクリプト出力の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dotnet/ efcore --skill toolingインストール後、Claude Code で/toolingを入力して読み込まれたか確認します。
詳細
ツール
マイグレーション、スキャフォールディング、コンパイル済みモデル用の dotnet ef CLI および Visual Studio Package Manager Console コマンドです。
dotnet-ef CLI (src/dotnet-ef/)
RootCommand がグローバルオプションを解析します。サブコマンドは src/ef/Commands/ に実装されています。各サブコマンドは MSBuild を呼び出してビルドした後、OperationExecutor をホストする dotnet exec ef.dll をシェルから実行します。
PMC (src/EFCore.Tools/)
PowerShell モジュールです。Add-Migration、Update-Database、Scaffold-DbContext、Optimize-DbContext などを提供します。
MSBuild Tasks (src/EFCore.Tasks/)
NuGet パッケージ Microsoft.EntityFrameworkCore.Tasks は、ビルド時および発行時のコンパイル済みモデルとプリコンパイル済みクエリの生成を提供します。ターゲットは buildTransitive/Microsoft.EntityFrameworkCore.Tasks.targets にあります。
コマンドオプションの所有箇所
コマンドまたはオペレーションの契約を変更する前に、オプションを消費するコードを追跡してください。外側の dotnet-ef ランチャーはプロジェクトをビルドし、残りのコマンドライン引数を ef.dll に渡します。src/ef/Commands/ 内の内側のコマンドが、コマンド固有のオプションを解析します。
- 表示のみの動作は内側のコマンドに保持してください。たとえば、
MigrationsAddCommand.Execute()から完了メッセージを抑制する場合は、そのReporter.WriteInformation()呼び出しを条件で囲み、IOperationExecutor.AddMigration()は変更しないでください。 - 値を
OperationExecutorBase経由で渡すのは、Microsoft.EntityFrameworkCore.Designのデザイン時オペレーションで必要な場合に限ります。 - PMC と
EFCore.Tasksは別々のエントリーポイントとして扱ってください。要求された動作がこれらのインターフェイスにも適用される場合にのみ変更してください。
テスト
- CLI テスト:
test/dotnet-ef.Tests/、test/ef.Tests/ - EFCore.Tasks 専用のテストプロジェクトはありません。タスクやターゲットを変更する場合は、テストプロジェクトを作成し、
EFOptimizeContext=trueを指定してdotnet build/dotnet publishを手動で実行し、検証してください。
検証
- ツールを変更する場合は、テストプロジェクトを作成し、影響を受けるコマンドを手動で実行して動作を検証してください。
dotnet ef migrations scriptの出力が想定される DDL と一致することを確認してください。