本稿は、Scott Guthrie氏のブログを、氏の許可を得て翻訳、転載したものです。米Microsoft社の副社長で、ASP.NETやSilverlightの開発チームを統率する氏のブログでは、次期製品を含む最新の技術をいち早く紹介しています。
先月、新しいEntity Framework 4『コード・ファースト』開発オプションについてブログ投稿しました。EF『コード・ファースト』はデータを扱うための非常に優しい『コード中心』の開発ワークフローを可能にします。それにより以下のことが可能です。
- デザイナを開いたりXMLマッピングファイルを定義したりすることなくデータが扱える
- ベース・クラスなしのプレーン・オールド・クラスを書くだけでモデル・オブジェクトを定義
- 明示的な設定をすることなく、データベースの永続化が可能な設定に勝る規約を使用
初回のブログ投稿で、EF『コード・ファースト』を紹介し、新しいデータベースを作成する時のデフォルトのEF4マッピング規約の使用方法をお見せしました。これらのデフォルトの規約は新しいアプリケーションに非常にうまく動作し、データベースへまたデータベースからクラスをマップするのに明示的に何かを構成しなくてもよくなります。そして、2回目の独自のデータベース・スキーマのマッピングについてのブログ投稿を行い、デフォルトの永続化マッピング・ルールのオーバーライドと独自データベース・スキーマの有効化の方法をお話ししました。
本日のブログ投稿では、最近いくつか頂いた質問についてカバーします。それは、「既存のデータベースとEFコード・ファーストはどのように使用するのか? 」というものです。
EFコード・ファーストを既存のデータベースと使用
EF『コード・ファースト』は既存のデータベースとうまく動作し、それらとの非常に素晴らしいコード中心の開発方法が可能になります。具体的には、クリーンなプレーン・オールド・クラス(別名POCO)をモデルオブジェクトに対して使用できるようになり、デフォルトのマッピング規約もしくはそれを独自のスキーマ・マッピング・ルールでオーバーライドしたものを使用してデータベースへ、またはデータベースからそれらをクリーンにマップできるようになります。
以下は既存データベースとEF『コード・ファースト』を使用する方法のステップバイステップのインストラクションです。
ステップ 1:新しいASP.NET Webアプリケーションプロジェクトの作成
では、まず新しいASP.NET Webアプリケーションプロジェクトを作成しましょう。以前の2つのEF『コード・ファースト』ブログ投稿ではASP.NET MVCを使用しましたが、今回はASP.NET Webフォームを使用します。注意して欲しいのは、どんなタイプのASP.NETアプリケーションを使用してもEF概念はすべて同一であるということです。
VS 2010(または無償のVisual Web Developer 2010 Express)で、[ファイル]-[新規プロジェクト]を使用して、[ASP.NET Webアプリケーション]プロジェクトテンプレートを選択して新しいアプリケーションを作成します。
VS 2010の新しい「ASP.NET Webアプリケーション」プロジェクトは素晴らしいスターターテンプレートで、CSSデザインされたデフォルトのマスターページレイアウトが提供されます(以前この新しいスターター・プロジェクトテンプレートについてブログ投稿しています)。それが作成されるといくつかのデフォルトファイルが確認できます。
これらのデフォルトファイルは必要ありません(代わりに[空のASP.NET Webアプリケーション]プロジェクトテンプレートだけの使用もできます)。しかし、それらによりこの単純なアプリケーションの見た目がデフォルトで少し通常よりもきれいになるので使うことにします。
ステップ 2:EF コード・ファースト・アセンブリの参照
次のステップでは、プロジェクトにEF コード・ファースト・ライブラリへの参照を追加します。ソリューションエクスプローラで[参照設定]ノード上を右クリックし[参照の追加]を選択します。
EF コード・ファーストライブラリをダウンロードしてインストールした時に「\Program Files\Microsoft ADO.NET Entity Framework Feature CTP4\Binaries\」ディレクトリ内にインストールされた[Microsoft.Data.Entity.Ctp.dll]アセンブリを参照します。この参照を追加後、次のようなプロジェクトの参照ウィンドウが表示されます。
ステップ 3:Northwindデータベース
もしSQL ServerデータベースにNorthwind(もしくは他のデータベース)がインストールされていればこのステップはスキップしてください。
Northwindがインストールされていなければ、ここでダウンロードできます。そこに含まれている.SQLファイルでSQLデータベースにインストールすることも、またNorthwind.mdf SQL Expressファイルをアプリケーションの「\App_Data」ディレクトリにコピーすることも可能です。