ステップ 8:Productsコントローラをスキャフォールディング
Categoriesの一覧化や編集を管理する、CategoriesControllerクラスが作成できました。では、Productsの一覧や編集を管理する、ProductsControllerクラスを作成しましょう。
先と同じように、プロジェクトにある『Controllers』フォルダを右クリックして、[Add]-[Controller]コンテキストメニューを選択します。Controllerクラス名を『ProductsController』にして作成し、ProductモデルクラスでEFテンプレートを使用して、スキャフォールドすることを指定します。
『Add』ボタンをクリックすると、CRUDシナリオに対して適切なアクションメソッドのある、ProductsControllerクラスがスキャフォールドされ、関連するビューテンプレートも同時に作成されます。
プロジェクトを実行すると、 /Products URLに移動できます。
『Create New』リンクをクリックして、新しい製品を作成しましょう。
注目すべきは、『Category』が、単に外部キーのInteger値があるテキストボックスではなく、有効なカテゴリのドロップダウンであることです。
Visual Studioでのスキャフォールディングサポートは、Categoryをassociationとして検知し、有効なカテゴリのドロップダウンに、紐づけるEFコードをスキャフォールドします。
いくつかの製品を入力すると、/Products URLで、以下のようにデータ表示されます。
分かりやすい名前でカテゴリが表示され、外部キー値だけでないことが分かります。
より詳細について
上記のウォークスルーでは、ASP.NET MVC 3 Tools Updateにビルトインされた、新しいEF コードファーストとデータスキャフォールディングの簡単な説明と、それらを使用して簡単で素早くアプリケーション開発を行う方法を紹介しました。EF コードファーストでは、非常にクリーンなデータアクセスのコードが書けます。データスキャフォールディングサポートにより、データUIを素早く作成して、その後さらなる微調整/カスタマイズが簡単に行えます。
EF コードファーストとの動作に加え、データベースファーストまたはモデルファーストの方法と、EF WYSIWYGデザイナを使用して構築された、標準のEF ObjectContextオブジェクトに対して、データスキャフォールディングサポートも使用できます。
スキャフォールディング
Steve Sanderson氏が、MIXでASP.NET MVC 3スキャフォールディングサポートについて、詳細を語っています。
- スキャフォールディング-ASP.NET、NuGet、MVCScaffolding-MIXでのSteve Sanderon氏による講演
Steveは講演で、スキャフォールディングサポートの、(NuGetを使用した)コマンドラインからの利用方法や、スキャフォールディングテンプレートのダウンロードおよびその使用方法、例えば、リポジトリパターンを自動的に実装するものなどについてもカバーしています。
スキャフォールディング(およびその拡張性)について、Steveの優れたブログシリーズがあるので、ブックマークしてください。
- ASP.NET MVC 3でスキャフォールディング-ASP.NET MVC 3 スキャフォールディングについての素晴らしいブログシリーズ
EF コードファースト
今後EF コードファーストについて、ブログをもっと投稿していきます。以下は、過去に書いたチュートリアルです。
注:上記のチュートリアルは、EF コードファーストのCTP4リリースに対して書いたものであるため、いくつかのAPIが少し異なりますが、概略の概念やシナリオは最終リリースのものと同じです。
ASP.NET MVC 3
ASP.NET MVC 3についてもっと知りたい方は、Dutch DevDaysおよびMIXにおいて、Scott Hanselman氏が行ったビデオプレゼンテーションがあるので紹介します。
- ASP.NET MVC 3 101 -初級から上級
- MS Web Stack of Loveの概要-MIXでのScott氏の講演
http://asp.net/mvc Webサイトでも、新しいコンテンツやビデオをチェックしてください。
まとめ
新しいASP.NET MVC 3 Tools Updateは、いいことづくめです。もしまだダウンロード・インストールしていない場合は、すぐに行うことをお勧めします。今後のブログ投稿にもご期待下さい!
Hope this helps,
Scott
P.S.現在Twitterを使って簡単な更新やリンク共有を行っています。twitter.com/scottguでフォローしてください。




