エンティティフレームワーク-アーキテクチャ
Entity Frameworkのアーキテクチャは、下から順に、次のもので構成されています。
データプロバイダー
これらはソース固有のプロバイダーであり、概念スキーマに対してプログラミングするときにデータベースに接続するためにADO.NETインターフェイスを抽象化します。
コマンドツリーを介してLINQなどの一般的なSQL言語をネイティブSQL式に変換し、特定のDBMSシステムに対して実行します。
エンティティクライアント
このレイヤーは、エンティティレイヤーを上位レイヤーに公開します。エンティティクライアントは、開発者が概念スキーマを表すクラスを生成することなく、エンティティSQLクエリを使用して行と列の形式でエンティティに対して作業する機能を提供します。エンティティクライアントは、コア機能であるエンティティフレームワークレイヤーを示しています。これらのレイヤーは、エンティティデータモデルと呼ばれます。
ザ・ Storage Layer データベーススキーマ全体がXML形式で含まれています。
ザ・ Entity Layer これはXMLファイルでもあり、エンティティと関係を定義します。
ザ・ Mapping layer は、概念層で定義されたエンティティと関係を、論理層で定義された実際の関係とテーブルにマップするXMLファイルです。
ザ・ Metadata services これはエンティティクライアントでも表され、メタデータに保存されたエンティティ、マッピング、ストレージレイヤーにアクセスするための集中型APIを提供します。
オブジェクトサービス
オブジェクトサービスレイヤーはオブジェクトコンテキストであり、アプリケーションとデータソース間の相互作用のセッションを表します。
オブジェクトコンテキストの主な用途は、エンティティのインスタンスの追加、削除などのさまざまな操作を実行し、クエリを使用して変更された状態をデータベースに保存することです。
これは、エンティティフレームワークのORMレイヤーであり、データ結果をエンティティのオブジェクトインスタンスに表します。
このサービスを使用すると、開発者は、LINQとエンティティSQLを使用してクエリを作成することにより、主キーマッピング、変更追跡などの豊富なORM機能の一部を使用できます。