SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Scott Guthrie氏 Blog翻訳

ASP.NET MVC 3 Tools UpdateによるEF コードファーストとデータスキャフォールディング

連載:ScottGu's Blog翻訳

ステップ 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つのテーブル間の主キー/外部キーのセットアップも自動的に行われます。

次のページ
まとめ

この記事は参考になりましたか?

Scott Guthrie氏 Blog翻訳連載記事一覧

もっと読む

この記事の著者

WINGSプロジェクト Chica(チカ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Guthrie(Scott Guthrie)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5926 2011/05/19 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー