ステップ 5:データベースの場所を定義
最後に、アプリケーションを実行する前に使用したいデータベースの場所をポイントします。EFコードファーストにより、既に定義済みの既存のデータベース、もしくは未定義のデータベース(この場合、定義したモデルクラスを使用して、自動作成されます)が利用できます。
接続文字列が不要
デフォルトでは、実際データベースをポイントする接続文字列の構成は必要ありません。指定していない場合、EFコードファーストが、デフォルトでDbContext クラス名にマッチした新しいSQL Expressデータベースを作成します。例えば、上記の場合、ScaffoldingDemo.Models.StoreContextデータベースを、ローカルのSQLExpressデータベースインスタンスに作成します。
明示的に接続文字列を指定
アプリケーションのWeb.configファイルに、接続文字列を追加すれば、明示的にデータベースを指定できます。接続文字列は、DbContextクラス名にマッチさせておきます。例えば、『StoreContext』という名前のDbContextクラスの場合、EFはデータベースの場所を決定するのに、同じ名前の接続文字列を探します。
以下は、アプリケーションの 『App_data』フォルダに、『Store.sdf』という名前で埋め込まれたSQL CEデータベースを使用する場合のWeb.configの設定です。
<configuration>
<connectionStrings>
<add name="StoreContext"
connectionString="Data Source=|DataDirectory|\Store.sdf"
providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
</configuration>
私の以前のブログ投稿で、SQL CEや新しいVS 2010 SP1ツールサポートについて、確認できます。
ステップ 6:アプリケーションの実行
では、アプリケーションを実行して/Categories URLへ移動しましょう。これは、CategoriesControllerのIndexメソッドを実行し、データベースのカテゴリをすべて表示します。現在は何もありません。
『Create New』リンクをクリックして、新しいカテゴリを作成します。これは、/Categories/Create URLへ移動し、カテゴリの新規作成フォームを表示します。
『Create』ボタンは、フォームをCategoriesController にPOSTし、データベースに新規カテゴリを追加します。いくつかの異なるカテゴリを追加するために何度かこれを繰り返します。
優れた点は、これを行うのにコントローラやビューコードを書かなくてもいいところです。
スキャフォールディングサポートが、自動的にこれに必要なコードを作成します。これにより、本当に簡単に最初の準備ができます。この後、さらに必要な機能のカスタマイズや微調整を行います。
ステップ 7:データベースを見る
接続文字列で未定義のSQL CEデータベースを指定して、アプリケーションを構成しました。アプリケーションの実行後EF 4.1は、そのデータベースが存在しないことを検知し、最初に定義したProduct およびCategoryクラスに基づいて自動的に作成します。
データベースを見るには、まず、Visual Studioの『ソリューションエクスプローラ』上部にある『すべてのファイルを表示』アイコンをクリックし、EFがプロジェクトに自動作成した『Store.sdf』を追加します。
サーバーエクスプローラーを開いてデータベースをダブルクリックし、その中のテーブルを展開すると、作成されたスキーマが確認できます。
最初に作成した、CategoryおよびProductクラスに基づいた適切なデータベースが、EF コードファーストにより、自動作成されていることが分かります。クラスで指定された関連プロパティに基づいて、2つのテーブル間の主キー/外部キーのセットアップも自動的に行われます。



