ASP.NET Core Webアプリ(MVC)の作成の基本② SQL ServerとModelの準備

2回目はローカルにSQL Serverを準備して、作成したテーブルのModelを作るまで。

今回もこちらの書籍を参考に。

環境

SQL Server Management Studioの導入

ダウンロードしてインストールの実行。最初のサーバーログインなどはメモできていなかった...。

Databaseの作成

Object Explorerで右クリックして、「New Database」を選択。

New DatabaseダイアログのDatabase nameに「mvcdb」などと入力し、

「OK」ボタンをクリックする。

テーブルの作成

先ほど作成されたDatabaseの中に「Tables」という項目があるので、右クリック > New > Tableと進む。

下図のようなテーブルを作成する。

idをプライマリーキーにするために、id上で右クリックして「Set Primary Key」を選択。このテーブルを保存しようとすると、テーブル名を求められるので「Person」と入力。

次に作成されたテーブルの上で右クリックして「Edit Top 200 Rows」を選択

サンプル用のデータを入力しておく。

Microsoft.EntityFrameworkCoreのパッケージを追加

Visual StudioのNuGet管理で、下記3つのパッケージを追加する。

参考書籍には、最新のものを使うようにと記載があるが、2024年9月現在で最新のものを使おうとすると、下記のようなエラーが出る。

なので、テキスト記載の同じバージョンに変更する(7.0.5)

プルダウンで見るとだいぶ下の方にある...。

Modelクラスを生成する

データベースにアクセスするアプリケーションを作成するのに、下記2点のアプローチがある

  • コードからデータベースのテーブルを構築
  • 既存のデータベースのテーブルからModelクラスを作る(今回)

また、今回はコマンドラインでModelクラスを作成する。そのため、PowerShellでプロジェクトのルートディレクトリへ移動する。そのルートディレクトリはVisual Studioのプロパティウィンドウで確認できる。

ルートディレクトリへ移動後に、

dotnet ef

と実行してみて、コマンドが使えるか確認をする。下記のようなエラーが出る場合

指定されたコマンドまたはファイルが見つからなかったため、実行できませんでした。

dotnet-efをインストールしなければならない

dotnet tool install --global dotnet-ef

コマンドの書式

dotnet ef dbcontext scaffold 接続文字列 Microsoft.EntityFrameworkCore.SqlServer -o 出力フォルダ

接続文字列は、Visual StudioSQL Serverオブジェクトエクスプローラーから確認できる。

最初にSQLサーバへ接続する必要があるが、その手順はメモできておらず...。

出力フォルダはVisual Studioにある「Models」を使用する。

上記コマンドを実行すると、Personテーブルを反映したModelがModelsディレクトリに生成されていることがわかる。