連載:ADO.NET Entity Framework入門

第1回 最新DBアクセス・フレームワークの基本的な考え方

WINGSプロジェクト 土井 毅 著/山田 祥寛 監修
2010/06/04
Page1 Page2 Page3 Page4

■論理モデルの自動生成

 それでは、作成したEDMを元に、論理モデルを生成しよう。データベースを作成するため、サーバ・エクスプローラで[データ接続]を右クリックし、表示されるコンテキスト・メニューから[新しい SQL Server データベースの作成]を選択しよう。今回はデータベース名を「AddressBook」とした。


図14 AddressBookデータベースを作成する

 次に、Entryエンティティを右クリックし、表示されるコンテキスト・メニューから[モデルからデータベースを生成]を選択する。[データベース生成ウィザード]が表示され、先ほど追加したAddressBookデータベースへの接続が自動的に選択されるので、[次へ]ボタンをクリックしよう。


図15 ローカルのAddressBookデータベースが接続先として使用されている

 図16のように、EDMからデータベース作成用のDDL(=テーブル定義用のスクリプト)が生成されるので、[完了]ボタンをクリックする。この時点ではDDLはまだ実行されていないことに注意。


図16 EDMを元に、データベース作成用のDDLが生成される

 DDLがエディタで開かれるので、メニューバーから[データ]−[Transact-SQL エディター]−[SQLの実行]を実行する。実行終了後、サーバ・エクスプローラからAddressBookデータベースのテーブル一覧を開くと、Entriesテーブルが作成されていることが確認できる。

 Entriesテーブルでは、図17のように、概念モデルで設計したプロパティがフィールドに変換されている。最大長を指定したNameフィールドや、データ型を指定したAgeフィールドに注目。


図17 Entriesテーブルの構造。Nameフィールドの最大長やAgeフィールドの型が設定されている

 以上の手順で、EDMの作成と、データベースの生成を行うことができた。

 今回はEDMを一から作成し、そこからデータベースを生成したが、これは.NET 4からの新機能である。.NET 4以前のEntity Frameworkでは、既存のデータベースからEDMを生成する(=リバースする)ことしかできなかった。

 Entity Frameworkが、概念モデルを軸に開発を行うアプローチを採用していることからすると、EDMからのデータベースの生成(「モデル・ファースト」と呼ぶ)は必須の機能といえるだろう。実際、多くの開発者が待ち望んでいた機能である。

まとめ

 ADO.NET Entity Framework入門第1回として、Entity Frameworkの概要とEDM(エンティティ・データ・モデル)について解説した。また、EDMの作成方法と、EDMからのデータベースの生成についても手順を確認した。

 今回のサンプルの段階では、EDMのエンティティ1個に対してデータベースのテーブルが1個あるだけで、概念モデルと論理モデルがほぼ一致しているため、Entity Frameworkの特徴をまだ生かせてはいない(この用途であれば、シンプルなO/Rマッパーでも同じことができる)。

 次回以降、概念モデルの活用へと解説を進めていきたい。また、今回扱えなかった、EDMを使ったプログラミングの詳細についても紹介する。End of Article

 

 INDEX
  ADO.NET Entity Framework入門
  第1回 最新DBアクセス・フレームワークの基本的な考え方
    1.ADO.NET Entity Framework概要
    2.論理モデルによるプログラミングと概念モデルによるプログラミング
    3.EDMの作成と論理モデルの生成
  4.論理モデルの自動生成
 
インデックス・ページヘ  「ADO.NET Entity Framework入門」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間