Freigeben über


Entity Framework und andere Plattformen

Bei den meisten Anwendungen werden relationale Datenbanken umfangreich eingesetzt. Entwickler benötigen ein Datenmodell, das Anwendungscode mit Speicherstrukturen verbindet.

Das Entitätsdatenmodell (EDM) unterstützt Anwendungsszenarios über verschiedene Speichermodelle hinweg und lässt sich sowohl CLR als auch Datenbankverwaltungssystemen wie SQL Server zuordnen. Das Mapping zur CLR ist für die Programmierbarkeit erforderlich und das Mapping zu relationalen Datenbanken für die Dauerhaftigkeit. Mit Einführung des EDM stellt ADO.NET eine umfassende Plattform zum Zuordnen programmierbarer Typen zu Speichern bereit.

Mindestens vier bestehende Plattformen sind Kandidaten für ein neues Datenmodell:

  • SQL Server

  • Common Language Runtime (CLR)

  • Unified Modeling Language (UML)

  • XML Schema Definition Language (XSD)

Keine der vorhandenen Plattformen erfüllt alle Anforderungen für Datenanwendungen.

  • SQL Server bietet keine nahtlose Integration in Programmiersprachen. Die textbasierten Abfragen sind im Code oft umständlich. Datenbanktabellen modellieren Beziehungen mithilfe von Fremdschlüsseln. Mit SQL kann keine strikte Kapselung modelliert werden.

  • Die CLR verfügt nicht über die zum Modellieren von Beziehungen erforderlichen Einschränkungen.

  • UML ist zu abstrakt. Weder Datentypen noch Dauerhaftigkeit werden implementiert.

  • Die XSD-Spezifikation unterscheidet sich zu stark von Programmiersprachenklassen und Datenbankschemas, um als neutrales Format für das Mapping zur CLR und zu relationalen Datenbankmodellen zu dienen.

EDM-Mapping zu CLR und Datenbankverwaltungssystemen

Das EDM lässt sich sowohl CLR als auch relationalen Datenbanken zuordnen. Mit der CLR können Entwickler Daten in gewohnten Codierungsformaten verwenden. Datentypen in Code werden relationalen Datenbanken zugeordnet, der bewährte Standard für Dauerhaftigkeit von Daten.

Zum Implementieren von Mapping über Schemas, Programmiersprachen und Datenbanktabellen hinweg verwendet das EDM einen speicherunabhängigen Anzeigemechanismus, der die Struktur relationaler Datenbankverwaltungssysteme verwendet. Konventionelle Anwendungen verwenden bereits Datenbanksichten zum Anzeigen und Aktualisieren von Daten. Zum Konstruieren von Sichten ist jedoch häufig komplexe SQL-Syntax mit Tabellenverknüpfungen und Projektionen erforderlich. Das EDM-Mapping zwischen Schemas und Speicher verbindet Objekte in Code mit der Datenbank unter Verwendung eines ADO.NET-Datenabieters.

Die EDM-Datendienste sind nicht von einem bestimmten Speicherschema abhängig. Anwendungen, für die mehrere Datenquellen erforderlich sind, können individuelle Mappings für jede Datenquelle verwalten.

Entwicklungsplattform

Das EDM unterstützt den Entwurf von Anwendungen in jeder Phase der Implementierung. Darüber hinaus unterstützt das EDM viele hilfreiche, bereits vorhandene Konstrukte, und sein Entwurf basiert auf Konzepten wohldefinierter Datenmodellierungssysteme, wie dem relationalen Datenbankmodell, dem Entitätsbeziehungsmodell und der Common Language Runtime (CLR).

Vom EDM werden komplexe Anwendungsfeatures modelliert und semantische Beziehungen zwischen programmierbaren Objekten und dem Datenbankspeicher deklarativ erfasst.

Das EDM umfasst die Features des relationalen Datenbankmodells und erweitert diese durch Zugabe von starker Typisierung, Identitäten auf Entitätsebene, Verweisen und Beziehungen.

Da die EDM-Spezifikation sehr umfangreich ist, können Sie eine Teilmenge der EDM-Spezifikation verwenden. Beispielsweise kann eine Anwendung oder ein Framework Entitäten, Zuordnungen und Verweise verwenden, ohne Vererbung zu nutzen.

Das EDM ist zwei Prinzipien entsprechend erweiterbar:

  • Neue Typen und Erweiterungen für vorhandene Typen können durch Vererbung definiert werden. Anwendungen können Beziehungen zwischen Typen und über Schemagrenzen hinweg definieren.

  • Erweiterungen für vorhandene Daten, die im EDM erstellt wurden, haben keine Auswirkungen auf Features, die die Erweiterungen nicht verwenden.

Die gemeinsame Verwendung über Anwendungen und Frameworks hinweg wird durch Definition von Anwendungsdatenmodellen mit Bezug zum EDM erreicht. Der für eine Anwendung definierte Namespace kann von einer anderen Anwendung verwendet werden, die gemäß EDM erstellt wurde.

Das Abfragemodell wurde im Rahmen relationaler Algebra entworfen. Dies bedeutet, dass beim Anwenden relationaler Operatoren auf EDM-Konzepte Ergebnisse zurückgegeben werden, die sich ebenfalls im EDM befinden.

Mit der Integration des EDM in die CLR wird eine vielseitige Datensemantik erfasst. Das EDM-Typsystem ordnet Deklarationen in Programmiersprachen Daten in den zugrunde liegenden Speicherstrukturen zu.

Die Entitäten des EDM sind logisch unabhängig von der verwendeten Implementierung der Dauerhaftigkeit. Das Datenmodell schreibt keine bestimmten Mappings oder Implementierungen vor, und Entitäten können einer Vielzahl von physischen Datenquellen zugeordnet werden. Das EDM soll die DDL (Data Definition Language) von SQL Server nicht subsumieren oder ersetzen.

Entwurfsphasen

Der Entwurf und die Implementierung eines Datenmodells mit der EDM-Spezifikation erfordern drei vorbereitende Phasen der Entwicklung. Die einzelnen Phasen des Prozesses sind im Folgenden aufgeführt.

  • Entitäten und Beziehungen in der Domäne der Anwendung werden in einer XML-Datei festgelegt.

  • Metadaten, die die Strukturen der Datenbank mit den Daten für die Anwendung beschreiben, werden in einer zweiten XML-Datei angegeben.

  • Die Entitäten und Beziehungen im ersten Schema werden den entsprechenden Datenbankstrukturen in der Metadatendatei zugeordnet.

Das erste Schema stellt eine konzeptionelle Phase der Entwicklung dar, in der Entitäten und Beziehungen mithilfe einer als konzeptionelle Schemadefinitionssprache (CSDL) bezeichneten XML-Syntax definiert werden. Dateien dieser Art verfügen über die CSDL-Dateinamenerweiterung. Weitere Informationen zur CSDL-Syntax finden Sie unter Schemas (EDM).

Für das Schema der Speichermetadaten wird die Datenspeicherschema-Definitionssprache (SSDL) verwendet.

Für das Mapping der konzeptionellen Schemas zu Speichermetadaten wird eine dritte XML-Syntax mit dem Namen Mapping-Spezifikationssprache (Mapping Specification Language, MSL) verwendet. Informationen zum Zuordnen von Entitäten und Beziehungen sowie zu den EDM-Schematypen finden Sie unter Schemas und Mappingspezifikation (Entity Framework).

Mit dem CSDL-Schema wird das vom Anwendungscode verwendete programmierbare Objektmodell generiert. Sprachen, die die Common Language Runtime (CLR) verwenden, können das beim Erstellungsprozess erstellte Objektmodell verwenden. Beispiele zu Anwendungscode finden Sie unter Beispielanwendungen (Entity Framework).

Siehe auch

Konzepte

Implementieren von Entitäten (EDM)
Implementieren von Zuordnungen (EDM)

Weitere Ressourcen

EDM-Spezifikationen
Beispielanwendungen (Entity Framework)