チュートリアル: ASP.NET MVC を使用して EF Database First 用の Web アプリケーションとデータ モデルを作成する

MVC、Entity Framework、ASP.NET スキャフォールディングを使用して、既存のデータベースへのインターフェイスを提供する Web アプリケーションを作成できます。 このチュートリアル シリーズでは、ユーザーがデータベース テーブルに存在するデータを表示、編集、作成、削除できるようにするコードを自動的に生成する方法について説明します。 生成されたコードは、データベース テーブル内の列に対応します。

このチュートリアルでは、Web アプリケーションの作成と、データベース テーブルに基づくデータ モデルの生成に焦点を当てます。

このチュートリアルでは、次の作業を行いました。

  • ASP.NET Web アプリを作成する
  • モデルを生成する

前提条件

ASP.NET Web アプリを作成する

新しいソリューションまたはデータベース プロジェクトと同じソリューションで、Visual Studio で新しいプロジェクトを作成し、ASP.NET Web アプリケーション テンプレートを選択します。 プロジェクトに ContosoSite という名前を付けます。

create project

OK をクリックします。

[新しい ASP.NET プロジェクト] ウィンドウで、MVC テンプレートを選択します。 後でアプリケーションをクラウドにデプロイするため、[クラウドでホスト] オプションをオフにできます。 [OK] をクリックすると、アプリケーションが作成されます。

プロジェクトは、既定のファイルとフォルダーで作成されます。

このチュートリアルでは、Entity Framework 6 を使用します。 [NuGet パッケージの管理] ウィンドウを使用して、プロジェクト内の Entity Framework のバージョンをダブルチェックできます。 必要に応じて、Entity Framework のバージョンを更新します。

show version

モデルを生成する

次に、データベース テーブルから Entity Framework モデルを作成します。 これらのモデルは、データの操作に使用するクラスです。 各モデルは、データベース内のテーブルを反映し、テーブル内の列に対応するプロパティを含みます。

Models フォルダーを右クリックし、[追加][新しい項目] を選択します。

[新しい項目の追加] ウィンドウで、左側のウィンドウで [データ] を選択し、中央のウィンドウのオプションから [ADO.NET Entity Data Model] を選択します。 新しいモデル ファイルに ContosoModel という名前を付けます。

追加をクリックします。

Entity Data Model ウィザードで [データベースの EF デザイナー] を選択します。

次へ をクリックします。

開発環境でデータベース接続が定義されている場合は、これらの接続のいずれかが事前に選択されている可能性があります。 ただし、このチュートリアルの最初の部分で作成したデータベースへの新しい接続を作成する必要があります。 [新しい接続] ボタンをクリックします。

[接続プロパティ] ウィンドウで、データベースが作成されたローカル サーバーの名前を指定します (この場合は (localdb)\ProjectsV13)。 サーバー名を指定したら、使用可能なデータベースから ContosoUniversityData を選択します。

set connection properties

OK をクリックします。

正しい接続プロパティが表示されるようになりました。 Web.Config ファイルでは、接続に既定の名前を使用できます。

次へ をクリックします。

Entity Framework の最新バージョンを選択します。

次へ をクリックします。

[テーブル] を選択して、3 つのテーブルすべてに対してモデルを生成します。

[完了] をクリックします。

セキュリティ警告が表示された場合は、[OK] を選択 してテンプレートの実行を続行します。

モデルはデータベース テーブルから生成され、テーブル間のプロパティとリレーションシップを示す図が表示されます。

diagram of model

Models フォルダーには、データベースから生成されたモデルに関連する多くの新しいファイルが含まれるようになりました。

ContosoModel.Context.cs ファイルには、DbContext クラスから派生したクラスが含まれており、データベース テーブルに対応する各モデル クラスのプロパティを提供します。 Course.csEnrollment.csStudent.cs ファイルには、データベース テーブルを表すモデル クラスが含まれています。 スキャフォールディングを使用するときは、コンテキスト クラスとモデル クラスの両方を使用します。

このチュートリアルに進む前に、プロジェクトをビルドします。 次のセクションでは、データ モデルに基づいてコードを生成しますが、プロジェクトがビルドされていない場合、そのセクションは機能しません。

次のステップ

このチュートリアルでは、次の作業を行いました。

  • ASP.NET Web アプリを作成しました
  • モデルを生成しました

次のチュートリアルに進み、データ モデルに基づいて生成コードを作成する方法を学習してください。