モデルの追加 (VB)
作成者: Rick Anderson
このチュートリアルでは、Microsoft Visual Web Developer 2010 Express Service Pack 1 (Microsoft Visual Studio の無料バージョン) を使用した ASP.NET MVC Web アプリケーション ビルドの基本について説明します。 開始する前に、以下に示す前提条件がインストールされていることを確認してください。 Web Platform Installer のリンクをクリックすると、これらをすべてインストールできます。 また、次のリンクを使用して前提条件となるソフトウェアを個別にインストールすることもできます。
- Visual Studio Web Developer Express SP1 の前提条件
- ASP.NET MVC 3 Tools Update
- SQL Server Compact 4.0 (ランタイム + ツールのサポート)
Visual Web Developer 2010 ではなく Visual Studio 2010 を使用する場合は、Visual Studio 2010 の前提条件のリンクをクリックして、前提条件をインストールします。
このトピックに関連する、Visual Web Developer プロジェクトと VB.NET ソース コードを使用できます。 VB.NET バージョンをダウンロードします。 C# を使用する場合は、このチュートリアルの C# バージョンに切り替えてください。
モデルの追加
このセクションでは、データベースのムービーを管理するクラスをいくつか追加します。 これらのクラスは ASP.NET MVC アプリケーションの "モデル" 部分になります。
ユーザーは Entity Framework と呼ばれる .NET Framework データ アクセス テクノロジを使用して、これらのモデル クラスを定義し、操作します。 Entity Framework (多くの場合、EF と呼ばれる) は、Code First と呼ばれる開発パラダイムをサポートしています。 Code First では、簡単なクラスを記述することでモデル オブジェクトを作成できます。 (これらは "簡素な旧型の CLR オブジェクト" という意味の POCO クラスとも呼ばれます)。その後、クラスからすぐにデータベースを作成できるため、非常にクリーンで迅速な開発ワークフローが可能になります。
モデル クラスの追加
ソリューション エクスプローラーで、Models フォルダーを右クリックし、[追加]、[クラス] の順に選択します。
クラスに "Movie" という名前を付けます。
Movie
クラスに次の 5 つのプロパティを追加します。
Public Class Movie
Public Property ID() As Integer
Public Property Title() As String
Public Property ReleaseDate() As Date
Public Property Genre() As String
Public Property Price() As Decimal
End Class
Movie
クラスを使用して、データベース内のムービーを表します。 Movie
オブジェクトの各インスタンスはデータベース テーブルの行に対応し、Movie
クラスの各プロパティはテーブルの列にマップされます。
同じファイルに、次の MovieDBContext
クラスを追加します。
Public Class MovieDBContext
Inherits DbContext
Public Property Movies() As DbSet(Of Movie)
End Class
MovieDBContext
クラスは Entity Framework ムービー データベース コンテキストを表します。これは、データベース内の Movie
クラス インスタンスのフェッチ、格納、および更新を処理します。 MovieDBContext
は Entity Framework によって提供される DbContext
基底クラスから派生します。 DbContext
および DbSet
の詳細については、「Entity Framework の生産性の向上」を参照してください。
DbContext
と DbSet
を参照できるようにするには、次の imports
ステートメントをファイルの先頭に追加する必要があります。
Imports System.Data.Entity
完全な Movie.vb ファイルを次に示します。
Imports System.Data.Entity
Public Class Movie
Public Property ID() As Integer
Public Property Title() As String
Public Property ReleaseDate() As Date
Public Property Genre() As String
Public Property Price() As Decimal
End Class
Public Class MovieDBContext
Inherits DbContext
Public Property Movies() As DbSet(Of Movie)
End Class
接続文字列の作成と SQL Server Compact の使用
作成した MovieDBContext
クラスは、データベースに接続し、Movie
オブジェクトをデータベース レコードにマッピングするタスクを処理します。 しかし、接続先のデータベースを指定する方法について、疑問が生じるかもしれません。 これを行うには、アプリケーションの Web.config ファイルに接続情報を追加します。
アプリケーション ルートの Web.config ファイルを開きます。 (Views フォルダー内の Web.config ファイルではありません)。次の図は、両方の Web.config ファイルを示しています。赤で囲まれた Web.config ファイルを開きます。
次の接続文字列を、Web.config ファイルの <connectionStrings>
要素に追加します。
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
次の例は、新しい接続文字列が追加された Web.config ファイルの一部を示しています。
<configuration>
<connectionStrings>
<add name="MovieDBContext"
connectionString="Data Source=|DataDirectory|Movies.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
ムービー データを表し、データベースに格納するために記述する必要があるのは、このわずかなコードと XML のみです。
次に、新しい MoviesController
クラスを作成します。これを使用してムービー データを表示し、ユーザーが新しいムービー リストを作成できるようにします。