Entity Framework - Architektur
Die Architektur von Entity Framework besteht von unten nach oben aus:
Datenanbieter
Hierbei handelt es sich um quellenspezifische Anbieter, die die ADO.NET-Schnittstellen abstrahieren, um bei der Programmierung anhand des konzeptionellen Schemas eine Verbindung zur Datenbank herzustellen.
Es übersetzt die gängigen SQL-Sprachen wie LINQ über den Befehlsbaum in einen nativen SQL-Ausdruck und führt ihn für das jeweilige DBMS-System aus.
Entity Client
Diese Ebene macht die Entitätsebene der oberen Ebene zugänglich. Der Entitätsclient bietet Entwicklern die Möglichkeit, mithilfe von Entitäts-SQL-Abfragen mit Entitäten in Form von Zeilen und Spalten zu arbeiten, ohne dass Klassen zur Darstellung des konzeptionellen Schemas generiert werden müssen. Entity Client zeigt die Entity Framework-Ebenen an, die die Kernfunktionalität darstellen. Diese Ebenen werden als Entitätsdatenmodell bezeichnet.
Das Storage Layer enthält das gesamte Datenbankschema im XML-Format.
Das Entity Layer Dies ist auch eine XML-Datei, die die Entitäten und Beziehungen definiert.
Das Mapping layer ist eine XML-Datei, die die auf der konzeptionellen Ebene definierten Entitäten und Beziehungen mit den auf der logischen Ebene definierten tatsächlichen Beziehungen und Tabellen abbildet.
Das Metadata services Dies ist auch in Entity Client dargestellt und bietet eine zentralisierte API für den Zugriff auf Metadaten, die in Entity-, Mapping- und Storage-Schichten gespeichert sind.
Objektdienst
Die Objektdienstschicht ist der Objektkontext, der die Interaktionssitzung zwischen den Anwendungen und der Datenquelle darstellt.
Der Objektkontext wird hauptsächlich verwendet, um verschiedene Vorgänge wie Hinzufügen, Löschen von Instanzen von Entitäten auszuführen und den geänderten Status mithilfe von Abfragen wieder in der Datenbank zu speichern.
Es ist die ORM-Schicht von Entity Framework, die das Datenergebnis für die Objektinstanzen von Entitäten darstellt.
Mit diesen Diensten können Entwickler einige der umfangreichen ORM-Funktionen wie Primärschlüsselzuordnung, Änderungsverfolgung usw. verwenden, indem sie Abfragen mit LINQ und Entity SQL schreiben.