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.