Share via


Entity Data Model-Mappingszenarios (Anwendungsszenarios)

Das Entity Framework unterstützt verschiedene Möglichkeiten, konzeptionelle Modelle relationalen Daten in einem Entity Data Model (EDM) zuzuordnen. Weitere Informationen finden Sie unter Datenmodellierung im Entity Framework.

Die folgenden Entity Data Model (EDM)-Mappingszenarien werden derzeit vom Entity Framework unterstützt.

Mappingszenario Beschreibung

Einfaches Mapping

In diesem Mappingszenario wird jede Entität im konzeptionellen Modell einer einzelnen Tabelle im Speichermodell zugeordnet. Dies ist das von den Entity Data Model-Tools generierte Standardmapping. Weitere Informationen finden Sie unter Schnellstart (Entity Framework).

Entitätsaufteilung

In diesem Mappingszenario werden Eigenschaften einer einzelnen Entität im konzeptionellen Modell Spalten in zwei oder mehr zugrunde liegenden Tabellen zugeordnet. In diesem Szenario müssen die Tabellen einen gemeinsamen Primärschlüssel verwenden. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Modells mit einer einzelnen Entität, der zwei Tabellen zugeordnet werden.

Horizontale Partitionierung im Speichermodell

In diesem Mappingszenario wird ein einzelner Entitätstyp im konzeptionellen Modell zwei oder mehr Tabellen mit demselben Schema zugeordnet. Die Entität wird den Tabellen auf Grundlage einer im konzeptionellen Modell definierten Bedingung zugeordnet. Beispielsweise kann die boolesche Eigenschaft "OnlineOrderFlag" der Entität SalesOrderHeader im AdventureWorks Sales-Modell verwendet werden, um Entitätsdaten in der Datenquelle in separate Tabellen zu partitionieren. Dabei wird eine Tabelle für Onlinebestellungen und eine zweite Tabelle für Offlinebestellungen verwendet. Weitere Informationen finden Sie unter Condition-Element (MappingFragment).

Horizontale Partitionierung im konzeptionellen Modell

In diesem Mappingszenario werden mehrere Entitätstypen im konzeptionellen Modell, die über dieselben Eigenschaften verfügen, einer einzelnen Tabelle zugeordnet. Mit einer Bedingungsklausel wird angegeben, welche Daten in der Tabelle zu welchem Entitätstyp gehören. Dieses Mapping ähnelt dem "Tabelle pro Hierarchie"-Vererbungsmapping.

"Tabelle pro Hierarchie"-Vererbung

In diesem Mappingszenario werden alle Typen in einer Vererbungshierarchie einer einzelnen Tabelle zugeordnet. Die Entitätstypen werden mithilfe einer Bedingungsklausel definiert. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Modells mit 'Tabelle pro Hierarchie'-Vererbung (Entity Framework).

"Tabelle pro Typ"-Vererbung

In diesem Mappingszenario werden alle Typen einzelnen Tabellen zugeordnet. Eigenschaften, die nur zu einem Basistyp oder einem abgeleiteten Typ gehören, werden in einer Tabelle gespeichert, die diesem Typ zugeordnet ist. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Modells mit einer 'Tabelle pro Typ'-Vererbung (Entity Framework).

"Tabelle pro konkretem Typ"-Vererbung

In diesem Mappingszenario werden nicht abstrakte Typen jeweils einer einzelnen Tabelle zugeordnet. Jede dieser Tabellen muss über Spalten verfügen, die allen Eigenschaften des abgeleiteten Typs, einschließlich der vom Basistyp geerbten Eigenschaften, zugeordnet sind.

Mehrere Entitätenmengen pro Typ

In diesem Mappingszenario wird ein einzelner Entitätstyp in mindestens zwei separaten Entitätenmengen im konzeptionellen Modell ausgedrückt. Jede Entitätenmenge wird einer separaten Tabelle im Speichermodell zugeordnet. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Modells mit mehreren Entitätenmengen pro Typ (Entity Framework).

Komplexe Typen

Ein komplexer Typ ist eine nicht skalare Eigenschaft eines Entitätstyps, der nicht über eine Schlüsseleigenschaft verfügt. Ein komplexer Typ kann andere geschachtelte komplexe Typen enthalten. Komplexe Typen werden Tabellen im Speichermodell zugeordnet. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Modells mit komplexen Typen (Entity Framework).

Funktionsimportmapping

In diesem Szenario wird eine gespeicherte Prozedur im Speichermodell einem FunctionImport-Element im konzeptionellen Modell zugeordnet. Bei ihrer Ausführung gibt die Funktion unter Verwendung der zugeordneten gespeicherten Prozedur Entitätsdaten zurück. Weitere Informationen finden Sie unter Gewusst wie: Definieren eines Modells mit einer gespeicherten Prozedur (Entity Framework).

Änderungsfunktionsmapping

In diesem Szenario werden gespeicherte Prozeduren im Speichermodell definiert, die Daten einfügen, aktualisieren und löschen. Diese Funktionen werden für einen Entitätstyp definiert und stellen die Aktualisierungsfunktionalität für einen bestimmten Entitätstyp bereit. Weitere Informationen finden Sie unter Unterstützung für gespeicherte Prozeduren (Entity Framework).

Definieren des Abfragemappings

In diesem Szenario wird eine Abfrage im Speichermodell definiert, die eine Tabelle in der Datenquelle darstellt. Die Abfrage wird in der systemeigenen Abfragesprache der Datenquelle ausgedrückt, wie beispielsweise Transact-SQL beim Mapping zu einer SQL Server-Datenbank. Dieses DefiningQuery-Element wird einem Entitätstyp im konzeptionellen Modell zugeordnet. Die Abfrage wird in der speicherspezifischen Abfragesprache definiert. Weitere Informationen finden Sie unter DefiningQuery-Element (EntityContainer SSDL). Bei der Verwendung einer definierenden Abfrage können Aktualisierungen nicht mit dem standardmäßigen Aktualisierungsprozess in der Datenquelle gespeichert werden. Aktualisierungen können durch die Definition von Änderungsfunktionsmappings vorgenommen werden. Weitere Informationen finden Sie unter Unterstützung für gespeicherte Prozeduren (Entity Framework).

Abfrageansichtsmapping

In diesem Szenario wird ein schreibgeschütztes Mapping zwischen Entitätstypen im konzeptionellen Modell und relationalen Tabellen im Speichermodell definiert. Dieses Mapping wird auf Grundlage einer Entity SQL-Abfrage des Speichermodells definiert, die Entitäten im konzeptionellen Modell zurückgibt. Weitere Informationen finden Sie unter QueryView-Element (EntitySetMapping). Bei der Verwendung einer Abfrageansicht können Aktualisierungen nicht mit dem standardmäßigen Aktualisierungsprozess in der Datenquelle gespeichert werden. Aktualisierungen können durch die Definition von Änderungsfunktionsmappings vorgenommen werden. Weitere Informationen finden Sie unter Unterstützung für gespeicherte Prozeduren (Entity Framework).

AssociationSet-Mapping

Zuordnungen definieren Beziehungen zwischen Entitäten. In einem einfachen Mapping mit einer 1:1- oder 1:n-Zuordnung, werden Zuordnungen, die Beziehungen im konzeptionellen Modell definieren, Zuordnungen im Speichermodell zugeordnet. Die folgenden erweiterten Zuordnungssatzmappings werden ebenfalls unterstützt:

  • m:n-Zuordnungen. Beide Enden der Zuordnung werden einer Verknüpfungstabelle im Speichermodell zugeordnet.

  • Selbstzuordnung. Diese unterstützt eine Zuordnung zwischen zwei Entitäten desselben Typs, wie beispielsweise einer Entität vom Typ "Employee" und einer weiteren Entität von Typ "Employee".

  • Zuordnungen zwischen abgeleiteten Typen. Dieses Mapping unterstützt eine Zuordnung zwischen einem abgeleiteten Typ in einer Hierarchie und einem abgeleiteten Typ in einer zweiten Hierarchie.

Weitere Informationen finden Sie unter Zuordnung (EDM).

Informationen über die Mappingszenarien, die von den Entity Data Model-Tools unterstützt werden, finden Sie unter Übersicht über den ADO.NET Entity Data Model-Designer.

Siehe auch

Konzepte

Vererbung im Entity Data Model (Anwendungsszenarios)
Entity Framework-Ressourcen
Abfragen eines Entity Data Model (Anwendungsszenarios)
Programmieren von Entity Data Model-Klassen (Anwendungsszenarios)
Definieren eines Entity Data Model (Anwendungsszenarios)

Weitere Ressourcen

Programmierhandbuch (Entity Framework)
Beispiele (Entity Framework)