Share via


EntityClient-Anbieter für Entity Framework

Der EntityClient-Anbieter ist ein von Entity Framework-Anwendungen verwendeter Datenanbieter für den Zugriff auf Daten, die in einem konzeptionellen Modell beschrieben sind. Weitere Informationen zu konzeptionellen Modellen finden Sie unter Modellieren und Zuordnen (Entity Framework). EntityClient greift mithilfe von anderen .NET Framework-Datenanbietern auf die Datenquelle zu. Beim Zugreifen (SqlClient) auf eine SQL Server-Datenbank verwendet EntityClient z. B. den .NET Framework-Datenanbieter für SQL Server. 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 ist 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 Entity Data Model-Konzepte 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 einen 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 konzeptionelles Modell ausgeführten EntityCommand zur Verfügung. Zum Ausführen des Befehls, der den EntityDataReader zurückgibt, rufen Sie ExecuteReader auf. Der EntityDataReader implementiert IExtendedDataRecord, um umfangreiche strukturierte Ergebnisse zu beschreiben.

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.

Informationen zum Aktualisieren von Daten, die durch ein konzeptionelles Modell verfügbar gemacht werden, finden Sie unter Gewusst wie: Verwalten von Transaktionen im Entity Framework.

In diesem Abschnitt

Gewusst wie: Erstellen einer EntityConnection-Verbindungszeichenfolge (Entity Framework)

Gewusst wie: Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt (EntityClient)

Gewusst wie: Ausführen einer Abfrage, die StructuralType-Ergebnisse zurückgibt (EntityClient)

Gewusst wie: Ausführen einer Abfrage, die RefType-Ergebnisse zurückgibt (EntityClient)

Gewusst wie: Ausführen einer Abfrage, die komplexe Typen zurückgibt (EntityClient)

Gewusst wie: Ausführen einer Abfrage, die geschachtelte Auflistungen zurückgibt (EntityClient)

Gewusst wie: Ausführen einer parametrisierten Entity SQL-Abfrage mithilfe von EntityCommand (EntityClient)

Gewusst wie: Ausführen einer parametrisierten gespeicherten Prozedur mithilfe von EntityCommand (EntityClient)

Gewusst wie: Ausführen einer polymorphen Abfrage (EntityClient)

Gewusst wie: Navigieren in Beziehungen mit dem Navigate-Operator (EntityClient)

Siehe auch

Konzepte

Verwalten von Verbindungen und Transaktionen (Entity Framework)
ADO.NET Entity Framework

Weitere Ressourcen

Sprachreferenz (Entity Framework)