Share via


Entity Framework 用の EntityClient プロバイダー

EntityClient プロバイダーは、概念モデルで記述されているデータにアクセスするために Entity Framework アプリケーションで使用するデータ プロバイダーです。 概念モデルの詳細については、「モデリングとマッピング (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 名前空間で実装されます。

接続の管理

Entity Framework は、基になるデータ プロバイダーおよびリレーショナル データベースに EntityConnection を提供することにより、ストレージ固有の ADO.NET データ プロバイダーに基づいて構築されます。 EntityConnection オブジェクトを構築するには、必要なモデルとマッピング、さらにストレージ固有のデータ プロバイダー名と接続文字列を含んだ一連のメタデータを参照する必要があります。 EntityConnection を確立すると、概念モデルから生成されたクラスを使用してエンティティにアクセスできます。

app.config ファイルの接続文字列を指定できます。

System.Data.EntityClient には、EntityConnectionStringBuilder クラスも含まれています。 このクラスを使用すると、開発者はこのクラスのプロパティおよびメソッドを使用することによって、正しい構文の接続文字列をプログラムで作成し、既存の接続文字列の解析や再作成を行うことができます。 詳細については、「EntityConnection の接続文字列を作成する方法 (Entity Framework)」を参照してください。

クエリの作成

Entity SQL 言語は、エンティティの概念スキーマを直接操作し、継承やリレーションシップなどの Entity Data Model 概念をサポートする、ストレージの影響を受けない SQL の言語です。 エンティティ モデルに対して Entity SQL コマンドを実行するには、EntityCommand クラスを使用します。 EntityCommand オブジェクトを構築する場合は、ストアド プロシージャ名またはクエリ テキストを指定できます。 Entity Framework は、ストレージ固有のデータ プロバイダーと連携し、汎用的な 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 データ プロバイダー間の通信手段です。

概念モデルに対する EntityCommand の実行結果は、EntityDataReader によって公開されます。 EntityDataReader を返すコマンドを実行するには、ExecuteReader を呼び出します。 EntityDataReader は、構造化されたさまざまな結果を記述するための IExtendedDataRecord を実装します。

トランザクションの管理

Entity Framework では、自動トランザクションと明示的トランザクションという 2 つの使用方法があります。 自動トランザクションでは System.Transactions 名前空間を使用し、明示的トランザクションでは EntityTransaction クラスを使用します。

概念モデル経由で公開されたデータを更新するには、「方法: Entity Framework のトランザクションを管理する」を参照してください。

このセクションの内容

EntityConnection の接続文字列を作成する方法 (Entity Framework)

PrimitiveType 結果を返すクエリの実行方法 (EntityClient)

StructuralType 結果を返すクエリの実行方法 (EntityClient)

RefType 結果を返すクエリの実行方法 (EntityClient)

複合型を返すクエリの実行方法 (EntityClient)

入れ子になったコレクションを返すクエリを実行する方法 (EntityClient)

EntityCommand を使用してパラメーター化 Entity SQL クエリを実行する方法 (EntityClient)

EntityCommand を使用してパラメーター化されたストアド プロシージャを実行する方法 (EntityClient)

ポリモーフィック クエリを実行する方法 (EntityClient)

Navigate 演算子でリレーションシップをナビゲートする方法 (EntityClient)

参照

概念

接続とトランザクションの管理 (Entity Framework)
ADO.NET Entity Framework

その他のリソース

言語リファレンス (Entity Framework)