EntityClient-Anbieter für das Entity Framework

Der EntityClient-Anbieter ist ein Datenanbieter, mit dem Entity Framework-Anwendungen auf Daten zugreifen, die in einem Entitätsdatenmodell (EDM) beschrieben werden. Weitere Informationen zu EDMs finden Sie unter Datenmodellierung im Entity Framework. EntityClient verwendet andere .NET Framework-Datenanbieter, um auf die Datenquelle zuzugreifen. EntityClient verwendet z. B. für den Zugriff auf eine SQL Server-Datenbank den .NET Framework-Datenanbieter für SQL Server (SqlClient). Weitere Informationen über den SqlClient-Anbieter finden Sie unter .NET Framework-Datenanbieter für SQL Server (SqlClient) für das Entity Framework. Der EntityClient-Anbieter wird im System.Data.EntityClient-Namespace implementiert.

Verwalten von Verbindungen

Das Entity Framework baut auf speicherspezifischen ADO.NET-Datenanbietern auf, indem es einem zugrunde liegenden Datenanbieter und einer relationalen Datenbank eine EntityConnection bereitstellt. Zur Erstellung eines EntityConnection-Objekts muss auf einen Satz von Metadaten verwiesen werden, die die notwendigen Modelle und das notwendige Mapping sowie einen speicherspezifischen Datenanbieternamen und eine Verbindungszeichenfolge enthalten. Nachdem die EntityConnection aufgesetzt ist, kann auf die Entitäten über die aus dem konzeptionellen Modell erstellten Klassen zugegriffen werden.

In der Datei app.config kann eine Verbindungszeichenfolge angegeben werden.

Der System.Data.EntityClient enthält auch die EntityConnectionStringBuilder-Klasse. Mithilfe dieser Klasse können Entwickler syntaktisch korrekte Verbindungszeichenfolgen programmgesteuert erstellen sowie vorhandene Verbindungszeichenfolgen analysieren und neu erstellen, indem sie Eigenschaften und Methoden der Klasse verwenden. Weitere Informationen finden Sie unter Gewusst wie: Erstellen einer EntityConnection-Verbindungszeichenfolge (Entity Framework).

Erstellen von Abfragen

Die Entity SQL-Sprache ist ein speicherunabhängiger Dialekt von SQL, der direkt mit konzeptionellen Entitätsschemas verwendet werden kann und EDM-Features wie Vererbung und Beziehungen unterstützt. Die EntityCommand-Klasse wird zur Ausführung eines Entity SQL-Befehls für ein Entitätsmodell verwendet. Bei der Erstellung von EntityCommand-Objekten kann der Name einer gespeicherten Prozedur oder ein Abfragetext angegeben werden. Das Entity Framework arbeitet mit speicherspezifischen Datenanbietern, um generisches Entity SQL in speicherspezifische Abfragen zu übersetzen. Weitere Informationen zum Schreiben von Entity SQL-Abfragen finden Sie unter Entity SQL-Sprache.

Im folgenden Beispiel wird ein EntityCommand-Objekt erstellt und dessen System.Data.EntityClient.EntityCommand.CommandText-Eigenschaft ein Entity SQL-Abfragetext zugewiesen. Diese Entity SQL-Abfrage ruft nach dem Listenpreis geordnete bestellte Produkte vom konzeptionellen Modell ab. Im folgenden Code werden keinerlei Annahmen über das Speichermodell vorausgesetzt.

EntityCommand cmd = conn.CreateCommand();

cmd.CommandText = @"``SELECT VALUE p

FROM AdventureWorksEntities.Product AS p

ORDER BY p.ListPrice ";

Ausführen von Abfragen

Wenn eine Abfrage ausgeführt wird, wird sie analysiert und in eine kanonische Befehlsstruktur konvertiert. Die darauf folgende Verarbeitung wird mit der Befehlsstruktur ausgeführt. Die Befehlsstruktur ermöglicht die Kommunikation zwischen dem System.Data.EntityClient und dem zugrunde liegenden .NET Framework-Datenanbieter wie System.Data.SqlClient.

Der EntityDataReader stellt die Ergebnisse eines für ein EDM ausgeführten EntityCommand zur Verfügung. Um den Befehl auszuführen, der den EntityDataReader zurückgibt, rufen Sie ExecuteReader auf. Der EntityDataReader implementiert IExtendedDataRecord, um umfangreiche strukturierte Ergebnisse zu beschreiben. Weitere Informationen finden Sie unter How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework).

Verwalten von Transaktionen

Im Entity Framework gibt es zwei Möglichkeiten zur Verwendung von Transaktionen: automatisch und explizit. Automatische Transaktionen verwenden den System.Transactions-Namespace, und explizite Transaktionen verwenden die EntityTransaction-Klasse.

Durch ein Entity Data Model (EDM) verfügbar gemachte Daten können nicht mithilfe des EntityCommand aktualisiert werden. Dies muss mithilfe von Object Services durchgeführt werden. Informationen zum Aktualisieren von Daten mit Object Services finden Sie unter Gewusst wie: Verwalten von Object Services-Transaktionen (Entity Framework).

Siehe auch

Weitere Ressourcen

Verwalten von Verbindungen und Transaktionen (Entity Framework-Aufgaben)
ADO.NET Entity Framework
Entity Framework-Aufgaben
Featurereferenz (Entity Framework)
Object Services (Entity Framework)