Generieren von Modellen und Zuordnungen
Entity Framework -Anwendungen und -Dienste basieren auf Modell- und Zuordnungsinformationen, die mit drei XML-basierten Sprachen ausgedrückt werden:
Konzeptionelle Schemadefinitionssprache (Conceptual Schema Definition Language, CSDL)
Datenspeicherschema-Definitionssprache (Store Schema Definition Language, SSDL)
Mapping-Spezifikationssprache (Mapping Specification Language, MSL)
CSDL stellt Anwendungsdaten als einen Satz von Entitäten und Beziehungen in einem konzeptionellen Modell dar und ist eine Implementierung von Entity Data Model. Ein Speichermodell wird in SSDL ausgedrückt und stellt das Schema des Datenspeichers dar. Die Zuordnung zwischen beiden Modellen wird in MSL ausgedrückt.
Die CSDL-, SSDL- und MSL-Inhalte für eine Anwendung können von den ADO.NET Entity Data Model Tools automatisch generiert werden. Der Entity Data Model Wizard generiert anhand einer vorhandenen Datenbank sowohl Modell- und Zuordnungsinformationen als auch Datenklassen. Der Entity Data Model Designer (Entity Designer) kann dann verwendet werden, um Modell- und Zuordnungsinformationen grafisch zu ändern. Sie können aber auch grafisch ein konzeptionelles Modell erstellen und dann mit dem Generate Database Wizard das Speichermodell, die Zuordnungen und die Datenklassen automatisch generieren, zusammen mit einer Datenbank, die das konzeptionelle Modell unterstützt. In beiden Szenarien können Sie die Modell- und Zuordnungsinformationen mithilfe des Update Model Wizard aktualisieren, wenn sich die zugrunde liegende Datenbank ändert.
Das Befehlszeilentool EDM-Generator (EdmGen.exe) ermöglicht die Erstellung eines einfachen konzeptionellen Modells mit einer 1:1-Zuordnung zwischen Entitäten und Tabellen in einer Datenquelle. EdmGen.exe kann auch zur Validierung eines konzeptionellen Modells und zur Erstellung der auf den Entitätstypen des Modell basierenden Datenklassen verwendet werden. EdmGen.exe ist Teil der Entity Framework -Laufzeitkomponenten, die in .NET Framework ab Version 3.5 Service Pack 1 (SP1) enthalten sind.
Überlegungen
Lassen Sie sich von folgenden Überlegungen leiten, wenn Sie mit den Entity Data Model -Tools ein konzeptionelles Modell anhand einer vorhandenen Datenbank generieren:
Alle Entitäten müssen über Schlüssel verfügen. Wenn eine Tabelle ohne Primärschlüssel in der Datenbank vorhanden ist, versuchen die Entity Data Model -Tools einen Schlüssel für die zugehörige Entität herzuleiten. Außerdem generieren die Entity Data Model -Tools ein DefiningQuery-Element im Speicherschema, das die Daten dieser Entität vor Schreibzugriffen schützt. Um die Daten der Entität aktualisieren zu können, muss sichergestellt werden, dass der generierte Schlüssel gültig ist, und das DefiningQuery-Element muss entfernt werden.
Eine Tabelle, die nur Fremdschlüssel enthält (manchmal als reine Jointabelle bezeichnet), und die eine m:n-Beziehung zwischen zwei Tabellen in der Datenbank darstellt, verfügt über keine entsprechende Entität im konzeptionellen Modell. Wenn die Entity Data Model -Tools auf eine solche Tabelle stoßen, wird die Tabelle im konzeptionellen Modell nicht als Entität, sondern als m:n-Zuordnung dargestellt. Die CourseInstructor-Zuordnung im Modell "School" ist ein Beispiel für dieses Verhalten. Weitere Informationen finden Sie unter Erstellen der EDMX-Datei für das Modell 'School' (Entity Framework-Schnellstart).
Das Modell "School"
Die Themen in diesem Erste Schritte (Entity Framework)-Abschnitt beziehen sich auf die Beispieldatenbank School. Das Skript, das die Datenbank "School" in einer Instanz von SQL Server generiert, finden Sie unter Erstellen der Beispieldatenbank "School" (Entity Framework-Schnellstart).
"School" enthält die folgenden Tabellen:
Course
StudentGrade
CourseInstructor
Department
OfficeAssignment
OnlineCourse
OnsiteCourse
Person
Diese Beispieldatenbank hebt viele der komplexen Modellierungsszenarien hervor, die von den Entity Data Model -Tools unterstützt werden. Das Skript erstellt die Beziehungen zwischen den Tabellen und fügt Beispieldaten ein, damit die Beispiele ausgeführt werden können und deren Funktionsweise ersichtlich wird. Im Folgenden ist das im ADO.NET Entity Data Model-Designer angezeigte Modell "School" dargestellt:
Siehe auch
Konzepte
Zuordnen eines konzeptionellen Modells zu einem Speichermodell
Weitere Ressourcen
Konfigurieren des Entity Framework (Entity Framework-Aufgaben)
Erste Schritte (Entity Framework)
Entity Data Model Tools
CSDL-, SSDL- und MSL-Spezifikationen