37.6 Die Architektur des Entity Frameworks
Inzwischen können Sie ein eigenes Entity Data Model erstellen und wissen, wie dieses strukturiert ist, welche Elemente es enthält. Jetzt wollen wir an dieser Stelle den Bogen etwas weiter spannen und uns das Entity Framework mit seinen Fähigkeiten aus der Vogelperspektive anschauen.
37.6.1 Object Services
Der eigentliche ORM des Entity Frameworks wird durch die Entity Framework Object Services beschrieben. Bei den Object Services handelt es sich um die Klassen, die durch den Namespace System.Data.Objects beschrieben werden, sowie um die erzeugten Entitäts- und ObjectContext-Klassen. Um Ihnen ein Gefühl zu geben, welche Aufgaben in die Verantwortung der Object Services fallen, hier eine unvollständige Liste der Dienste:
- Abfragen von Daten aus Objekten
- Ändern, Hinzufügen und Löschen von Objekten
- Serialisieren von Objekten
- Materialisieren von Objekten
- Verwalten der Beziehung zwischen den Objekten
- Speichern von Änderungen
- Datenbindung an Steuerelemente
- u. v. a.
Object Services stehen damit an der Spitze des Entity Frameworks und arbeiten direkt mit den Objekten. Der Objektkontext steht innerhalb der Object Services im Mittelpunkt der Betrachtungen.
37.6.2 Die Schichten des Entity Frameworks
Wenn Sie Daten von einer Datenquelle abfragen, stehen Ihnen mehrere Möglichkeiten zur Verfügung:
- Vermutlich werden in den meisten Fällen LINQ-to-Entities-Abfragen benutzt. LINQ to Entities ist eine LINQ-basierte Abfragesprache, die auf die Object Services des Entity Frameworks spezialisiert ist.
- Eine weitere Möglichkeit eröffnen Abfragen mit Entity SQL, oder auch nur kurz eSQL genannt. Das mit dem Entity Framework eingeführte eSQL ist ein datenbankneutraler SQL-Dialekt.
- Der EntityClient Provider wurde ebenfalls mit dem Entity Framework eingeführt. Dieser Provider kann auch dazu benutzt werden, im Stil des klassischen ADO.NET unter Zuhilfenahme von eSQL Datenabfragen abzusetzen.
- Es können auch Abfragen abgesetzt werden, die direkt auf ADO.NET zugreifen.
Die folgende Abbildung zeigt die Architektur des Entity Frameworks und das Einsatzgebiet der verschiedenen Abfragemöglichkeiten.
Abbildung 37.13 Die Architektur des ADO.NET Entity Frameworks
Wie Sie sehen können, gibt es mehrere Möglichkeiten, mit dem Entity Framework Daten abzufragen. Bis auf bestimmte Abfragen mit Entity SQL und den ebenfalls möglichen direkten Zugriff auf ADO.NET spielen dabei die Object Services eine tragende Rolle.
Die im Abschnitt zuvor beschriebenen Object Services können direkt von Abfragen, die in LINQ to Entities oder Entity SQL formuliert worden sind, genutzt werden. Unterhalb des Layers für die Object Services wird die nächste Schicht vom EntityClient Data Provider gebildet. Dieser fungiert als Bindeglied zwischen dem konzeptionellen Modell zu den datenbankspezifischen ADO.NET-Providern (z. B. MS SQL Server, Oracle), die natives SQL erzeugen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.