| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

差分

ナビゲーションに移動 検索に移動
編集の要約なし
==[[ADO.Net Entity Framework]]==
[[SQL Server]] | [[SQL Server Compact]] |
http://msdn.microsoft.com/ja-jp/library/bb399567.aspx
===概要===
*データ指向のソフトウェア アプリケーションの開発をサポート
*[[.NET ]] Framework のコンポーネント*[[.NET ]] Framework 3.5 Service Pack 1 (SP1) で実行可能
====アプリケーション開発では、2 つの大きく異なる目的を達成する必要====
#エンティティ、リレーションシップ、およびロジックをモデル化エンティティ、リレーションシップ、および[[ロジック]]をモデル化
#データの格納と取得に使用するデータ エンジンに取り組む
====データ モデリングの従来の一般的手法====
*概念モデル、論理モデル、および物理モデルの [[概念]]モデル、論理モデル、および物理モデルの 3 つに分割*概念モデルは通常、アプリケーションの要件を収集して伝えるためのツールとして使用され、プロジェクトの初期段階でのみ考慮および検討され、その後ほとんど使用されない[[概念]]モデルは通常、アプリケーションの要件を収集して伝えるためのツールとして使用され、プロジェクトの初期段階でのみ考慮および検討され、その後ほとんど使用されない
====エンティティ データ モデル (EDM)====
*開発者が概念モデル内のエンティティとリレーションシップに対してクエリを実行し、エンティティ 開発者が[[概念]]モデル内のエンティティとリレーションシップに対してクエリを実行し、エンティティ フレームワーク がこのような操作をデータ ソース固有のコマンドに変換という形で、概念モデルを活用ソース固有のコマンドに変換という形で、[[概念]]モデルを活用
*特定のデータ ソースへの依存関係をアプリケーションにハードコーディングしなくても済む
*概念モデル、ストレージ [[概念]]モデル、ストレージ モデル、および 2 つのモデル間のマッピングは、エンティティ データ モデル (EDM) と呼ばれる外部仕様で表現
=====3 つのモデル ファイルとマッピング ファイルで定義=====
!内容
|-
|概念スキーマ定義言語ファイル 概念スキーマ定義[[言語]]ファイル (.csdl)
|概念モデル
|-
|ストア スキーマ定義言語ファイル スキーマ定義[[言語]]ファイル (.ssdl)
|ストレージ モデル (論理モデルとも呼ばれる) を定義
|-
|マッピング スキーマ言語ファイル スキーマ[[言語]]ファイル (.msl)
|ストレージ モデルと概念モデルの間のマッピングを定義
|-
====インピーダンスミスマッチ====
=====単なるO/Rマッピング [[R]]マッピング ソリューションではない=====
*既存のソリューションでは、オブジェクト指向のクラスやプロパティをリレーショナル テーブルやリレーショナル列にマップするだけ
*エンティティ フレームワーク では、論理モデルのリレーショナル テーブル、列、および外部キー制約を概念モデルのエンティティとリレーションシップにマップすることで、柔軟にオブジェクトを定義して論理モデルを最適化テーブル、列、および外部キー制約を[[概念]]モデルのエンティティとリレーションシップにマップすることで、柔軟にオブジェクトを定義して論理モデルを最適化
=====基本動作=====
*概念モデルのエンティティとリレーションシップとして表されるデータにアプリケーションからアクセスして変更できるようにする[[概念]]モデルのエンティティとリレーションシップとして表されるデータにアプリケーションからアクセスして変更できるようにする*Object Services Ser[[vi]]ces は EDM を使用して、概念モデルで表されるエンティティ型に対するオブジェクト クエリをデータ ソース固有のクエリに変換*クエリ結果は、Object Services Ser[[vi]]ces によって管理されるオブジェクトに具体化
====拡張可能なデータ クラス====
*エンティティ データ モデル ツールでは、概念モデルに基づく拡張可能なデータ ツールでは、[[概念]]モデルに基づく拡張可能なデータ クラスが生成される
*クラスは、開発者が追加するメンバで拡張できる部分クラス。
*特定の概念モデルに対して生成されるクラスは、エンティティをオブジェクトとして具体化したり変更を追跡して保存したりするための [http://msdn.microsoft.com/ja-jp/library/bb386871.aspx Object Services] を提供する基本クラスから派生。
====[http://msdn.microsoft.com/ja-jp/library/bb738695.aspx オブジェクトの追加、変更、および削除]====
*概念モデルのエンティティ [[概念]]モデルのエンティティ コンテナを表す ObjectContext から派生したクラスを生成し、このオブジェクト コンテキストは、変更の追跡や ID、同時実行、およびリレーションシップの管理などの機能を提供する
*このクラスは、データ ソースに挿入、更新、および削除を書き込む SaveChanges メソッドも公開
*このような変更は、クエリと同様に、システムによって自動的に生成されるコマンドで行うことも、特定のストアド プロシージャを使用するように指定することも可能
====エンティティ データ モデル (EDM)====
*プログラミング言語やリレーショナル プログラミング[[言語]]やリレーショナル データベースの構造による制約を受けない中立的な形式でデータが定義される
*エンティティおよびリレーションシップの詳細を指定したり、それらをデータ構造として実装したりする際に使用
====2 つの基本的な型====

案内メニュー