Entity Data Model

エンティティ データ モデル (EDM) は、エンティティ フレームワーク 上に構築されたアプリケーション用のデータを定義するための仕様です。EDM を使用するアプリケーションでは、そのアプリケーション ドメインのエンティティとリレーションシップをデザイン スキーマで定義します。デザイン スキーマを使用することによって、アプリケーション コードから使用できるプログラミング可能なクラスが構築されます。このモデルのアプリケーションのデータを保存するストレージ構造は、ストレージ スキーマと呼ばれる別のスキーマで表現されます。デザイン スキーマとストレージ スキーマとは、マッピング スキーマによって関連付けられます。

プログラミング可能なオブジェクト モデルがデザイン スキーマから構築され、そのデザイン スキーマにはストレージ スキーマがマップされるため、実質的には、プログラミング可能なクラスとストレージ構造とが、マッピング スキーマによって関連付けられることになります。EDM によって定義されたエンティティは、データ リーダーを使ってシリアル化形式で読み取ったり、オブジェクトとして具体化したりできます。具体化されたオブジェクトは CLR 言語でのプログラミングが可能であるため、SQL 文字列やその他のデータベース構文を埋め込むことなく、更新したり保存したりできます。EDM には、EDM スキーマおよびマッピング スキーマで使用される基本的なエンティティ型およびリレーションシップの種類が用意されています。開発者は、これらの型をアプリケーションの設計に合わせて適宜、拡張できます。

アプリケーションのデータを管理するための各種のパラダイムは、それぞれ他にはない重要な特長を備えています。ストレージ モデルは、データを効率的に格納し、検索できるように最適化されています。XML は、プラットフォームの境界を越えたデータの交換を可能にします。オブジェクト指向プログラミングは、アプリケーション開発の標準として広く受け入れられています。これらのモデルはいずれも実用性に優れたものばかりですが、それぞれのモデル間でデータをやり取りするためには、アプリケーションのシナリオとは関係のないコードを何行も記述する必要があります。

データ モデルには、たとえば、Unified Modeling Language (UML) での分析結果やホワイトボードに書かれた図などがあります。どのような手法を用いるにせよ、データ型とその属性、データ型間のリレーションシップ、データの制約などが概念的に整理されていなければ、アプリケーション コードとして実装することはできません。EDM は、アプリケーション デザイナが開発プロセスでデータを表現するために用いるモデルを拡張し、その結果をスキーマ形式で記述できるようにする XML 構文を提供します。

このセクションのトピック

  • EDM 仕様
    EDM スキーマの構造とセマンティックについて説明します。