Entity Framework 用の EntityClient プロバイダ
EntityClient プロバイダは、エンティティ データ モデル (EDM) で記述されているデータにアクセスするために Entity Framework アプリケーションで使用するデータ プロバイダです。EDM の詳細については、「Entity Framework のデータ モデリング」を参照してください。EntityClient は、他の .NET Framework データ プロバイダを使用してデータ ソースにアクセスします。たとえば、EntityClient は、SQL Server データベースにアクセスするときは .NET Framework Data Provider for SQL Server (SqlClient) を使用します。SqlClient プロバイダの詳細については、「.NET Framework Data Provider for SQL Server (SqlClient) (Entity Framework 用)」を参照してください。EntityClient プロバイダは System.Data.EntityClient 名前空間で実装されます。
接続の管理
エンティティ フレームワーク は、基になるデータ プロバイダおよびリレーショナル データベースに EntityConnection を提供することにより、ストレージ固有の ADO.NET データ プロバイダに基づいて構築されます。EntityConnection オブジェクトを構築するには、必要なモデルとマッピング、さらにストレージ固有のデータ プロバイダ名と接続文字列を含んだ一連のメタデータを参照する必要があります。EntityConnection を確立すると、概念モデルから生成されたクラスを使用してエンティティにアクセスできます。
app.config ファイルの接続文字列を指定できます。
System.Data.EntityClient には、EntityConnectionStringBuilder クラスも含まれています。このクラスを使用すると、開発者はこのクラスのプロパティおよびメソッドを使用することによって、正しい構文の接続文字列をプログラムで作成し、既存の接続文字列の解析や再作成を行うことができます。詳細については、「EntityConnection の接続文字列を作成する方法 (Entity Framework)」を参照してください。
クエリの作成
Entity SQL 言語は、エンティティの概念スキーマを直接操作し、継承やリレーションシップなどの EDM 機能をサポートする、ストレージの影響を受けない SQL の言語です。エンティティ モデルに対して Entity SQL コマンドを実行するには、EntityCommand クラスを使用します。EntityCommand オブジェクトを構築する場合は、ストアド プロシージャ名またはクエリ テキストを指定できます。エンティティ フレームワーク は、ストレージ固有のデータ プロバイダと連携し、汎用的な Entity SQL をストレージ固有のクエリに変換します。Entity SQL クエリ記述の詳細については、「Entity SQL 言語」を参照してください。
次の例では、EntityCommand オブジェクトを作成し、Entity SQL クエリ テキストを System.Data.EntityClient.EntityCommand.CommandText プロパティに割り当てます。この Entity SQL クエリは、概念モデルから表示価格で並べ替えた製品を要求します。次のコードでは、ストレージ モデルが認識されません。
EntityCommand cmd = conn.CreateCommand();
cmd.CommandText = @"``SELECT VALUE p
FROM AdventureWorksEntities.Product AS p
ORDER BY p.ListPrice ";
クエリの実行
クエリを実行すると、そのクエリが解析され、正規コマンド ツリーに変換されます。すべての後続の処理は、コマンド ツリーで行われます。コマンド ツリーは System.Data.SqlClient など、System.Data.EntityClient と基になる .NET Framework データ プロバイダ間の通信手段です。
EDM に対する EntityCommand の実行結果は、EntityDataReader によって公開されます。EntityDataReader を返すコマンドを実行するには、ExecuteReader を呼び出します。EntityDataReader は、構造化されたさまざまな結果を記述するための IExtendedDataRecord を実装します。詳細については、「How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework)」を参照してください。
トランザクションの管理
Entity Framework では、自動トランザクションと明示的トランザクションという 2 つの使用方法があります。自動トランザクションでは System.Transactions 名前空間を使用し、明示的トランザクションでは EntityTransaction クラスを使用します。
Entity Data Model (EDM) 経由で公開されたデータは、EntityCommand 構文を使用して更新することはできません。Object Services を使用する必要があります。Object Services でのデータの更新については、「Object Services のトランザクションを管理する方法 (Entity Framework)」を参照してください。
参照
その他のリソース
接続およびトランザクションの管理 (Entity Framework タスク)
ADO.NET Entity Framework
Entity Framework タスク
機能リファレンス (Entity Framework)
Object Services (Entity Framework)