モデルの追加 (VB)

作成者: Rick Anderson

このチュートリアルでは、Microsoft Visual Web Developer 2010 Express Service Pack 1 (Microsoft Visual Studio の無料バージョン) を使用した ASP.NET MVC Web アプリケーション ビルドの基本について説明します。 開始する前に、以下に示す前提条件がインストールされていることを確認してください。 Web Platform Installer のリンクをクリックすると、これらをすべてインストールできます。 また、次のリンクを使用して前提条件となるソフトウェアを個別にインストールすることもできます。

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 フォルダーを右クリックし、[追加][クラス] の順に選択します。

Screenshot that shows the Solution Explorer window. Add is selected in the Models right click menu and Class is selected in the sub menu.

クラスに "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 の生産性の向上」を参照してください。

DbContextDbSet を参照できるようにするには、次の 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 ファイルを開きます。

Screenshot that shows the Solution Explorer window. Web dot config is circled in red.

次の接続文字列を、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 クラスを作成します。これを使用してムービー データを表示し、ユーザーが新しいムービー リストを作成できるようにします。