要約
EF Core Power Tools - Visual Studio Marketplace
をインストールすると、Visual Studio 2022 で既存のデータベースからモデルを作成できる。
きっかけ
ASP.NET Core Razor Pages を、Visual Studio 2022 を使いながら勉強中。
先にモデルを作成してからデータベースへマイグレーションするコードファーストの例はよく見るのですが、既存のデータベースからモデルを作成するデータベースファーストのやり方が分からずネットを検索していたときに見つけたのが、 EF Core Power Tools でした。
インストールなど
自分の操作した環境
- EF Core Power Tools Version 2.6.199 を、
- Visual Studio Community 2022 Version 17.9.4 に対してインストール。*1
- ASP.NET Core プロジェクト
- テンプレート: ASP.NET Core Web アプリ
- ターゲットフレームワーク: .Net 8.0
- NuGet パッケージで以下をインストール *2
- Microsoft.EntityFrameworkCore.SqlServer (8.0.3)
- Microsoft.EntityFrameworkCore.Design (8.0.3)
- Microsoft.EntityFrameworkCore.Tools (8.0.3)
- Microsoft.VisualStudio.Web.CodeGeneration.Design (8.0.2)
*1: EF Core Power Tools のインストール時に、対象とする Visual Studio を選択(確認)する画面が表示される。
*2: これらの NuGet パッケージが全部必須かは分からないが、少なくとも 1. 2. あたりは後からでもプロジェクトにパッケージを入れておかないと、ビルドエラーになる。
結果
Visual Studio のソリューションエクスプローラーで、プロジェクトを右クリックして「追加」→「新しい項目」を選択すると、下図のように、左側のリストに Data が表示されるようになり、これを選ぶと「EF Core Database Wizard」が出てくるようになる。
あとは、このウィザードに従って進めていけば、多少の手直しは要りましたが、既存のデータベース(テーブル)からモデルを作成することが出来ました。
参考
EF Core Power Tools の存在を知ったのは、このページから。
Visual Studio での EF Core Database First
価値提案: Visual Studio のすぐに使用できる Database First ツール。
EF Core Power Tools では、EF Core ツールの優れたビジュアル エクスペリエンスを提供します。 ただし、Power Tools は Visual Studio にすぐにインストールされないため、探すのが困難な場合があります。 .NET 8 の時間枠で、Visual Studio で EF Core ツールを簡単に見つけられるようにする予定です。 この作業の主な焦点は、既存のデータベース ("Database First" と呼ばれる) から EF モデルをスキャフォールディング (リバース エンジニアリング) することですが、他の領域も含まれる場合があります。
良く出来た素晴らしいツールなので、簡単に見つけられるように、早くなってもらいたいものです。