次の方法で共有


モデルの追加 (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 の前提条件のリンクをクリックして、前提条件をインストールします。

このトピックを学習する際に、VB.NET ソース コードを含む Visual Web Developer プロジェクトを使用できます。 VB.NET バージョンをダウンロードします。 C# を使用する場合は、このチュートリアルの C# バージョンに切り替えてください。

モデルの追加

このセクションでは、データベースのムービーを管理するためのクラスをいくつか追加します。 これらのクラスは ASP.NET MVC アプリケーションの "モデル" 部分になります。

Entity Framework と呼ばれる .NET Framework のデータアクセス テクノロジを使用して、これらのモデル クラスを定義し、使用します。 Entity Framework (EF とも呼ばれる) は、Code First と呼ばれる開発パラダイムをサポートしています。 Code First を使用すると、簡単なクラスを記述することでモデル オブジェクトを作成できます。 (これらは、POCO (Plain-Old CLR Objects) クラスとも呼ばれます)。そして、クラスからすぐに作成されるデータベースを利用できるため、開発ワークフローがすっきりとした迅速なものになります。

モデル クラスの追加

ソリューション エクスプローラー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 の生産性の向上」を参照してください。

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 ファイルを開きます。

ソリューション エクスプローラー ウィンドウを示すスクリーンショット。Web ドット構成は赤で囲まれています。

次の接続文字列を、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 クラスを構築します。