37.2 Ein erstes Entity Data Model (EDM) erstellen
Ehe wir uns noch weiter in die Details vertiefen, sollten wir an dieser Stelle zuerst unser erstes Entity Data Model erstellen und dessen Struktur anschließend analysieren. Wir erstellen dazu zuerst ein neues Projekt vom Typ einer Konsolenanwendung.
Als Grundlage dient uns an dieser Stelle die bereits vertraute Northwind-Datenbank. Wir wollen ein Entity Data Model erzeugen, das aus dieser Datenbank die beiden Tabellen Products und Categories beschreibt. Dazu markieren Sie im Projektmappen-Explorer zuerst das Projekt und öffnen mit der rechten Maustaste das Kontextmenü. Wählen Sie hier Hinzufügen • Neues Element... Es öffnet sich ein Dialogfenster, in dem Sie die Vorlage ADO.NET Entity Data Model auswählen (siehe Abbildung 37.1).
Abbildung 37.1 Hinzufügen eines Entity Data Models (EDM)
Mit dieser Vorlage wird eine EDMX-Datei erzeugt, der Sie den Namen Northwind geben sollten.
Nachdem Sie auf die Schaltfläche Hinzufügen geklickt haben, öffnet sich sofort der nächste Dialog. In diesem können Sie auswählen, ob das neue EDM aus einer bestehenden Datenbank erstellt werden soll oder ob Sie ein leeres Modell erstellen wollen (siehe Abbildung 37.2). Sie sollten hier Aus Datenbank generieren auswählen und anschließend auf die Schaltfläche Weiter klicken.
Nachdem Sie mit dem Assistenten die Verbindung zur Datenbank festgelegt haben (was ich an dieser Stelle nicht noch einmal beschreiben möchte), öffnet sich der nächste Dialog, in dem Sie die gewünschten Tabellen auswählen können. Beachten Sie in diesem Dialog bitte unbedingt, dass Sie die Option Generierte Objektnamen in den Singular oder Plural setzen ausgewählt haben (siehe Abbildung 37.3). Versäumen Sie das, werden Bezeichner generiert, die suggerieren, es würde sich um eine Menge handeln und nicht um einzelne Objekte. Ein Objekt, das einen Artikel beschreibt, wäre dann vom Typ Products und nicht, wie im Grunde genommen zu erwarten ist, vom Typ Product.
Anschließend können Sie den Assistenten beenden.
Abbildung 37.2 Das EDM aus einer Datenbank generieren
Abbildung 37.3 Auswahl der Tabellen aus der Datenbank
In der Designer-Ansicht von Visual Studio wird anschließend das erzeugte Entity Data Model angezeigt. Es zeigt die Umsetzung der Tabellen Products und Categories in die beiden sogenannten Entitäten Product und Category (siehe Abbildung 37.4). Jede der beiden dargestellten Entitäten beschreibt eine Klassendefinition, die wir uns weiter unten noch ansehen werden. Im Grunde genommen kann man jede Entitätsklasse als das Abbild eines Datensatzes verstehen, da jedes Feld der zugrunde liegenden Datenbanktabelle als Eigenschaft abgebildet wird.
Abbildung 37.4 Die Tabellen des Entity Data Models
Die beiden Tabellen Categories und Products stehen in der Northwind-Datenbank miteinander in einer 1:n-Beziehung. Im EDM wird diese Beziehung übernommen. Unterstützt werden Beziehungen durch Navigationseigenschaften. In unserem Beispiel handelt es sich um die Navigationseigenschaften Category und Products der beiden Entitäten Category und Product. Navigationseigenschaften im Entity Framework bieten die Möglichkeit, zwischen zwei Entitätstypen zu navigieren und Daten aus der in Beziehung stehenden Tabelle abzurufen.
Die Pluralisierung Products deutet darauf hin, dass einer bestimmten Kategorie mehrere Produkte zugeordnet sein können, während andererseits die Navigationseigenschaft Category in der Entität Product zum Ausdruck bringt, dass ein bestimmtes Produkt genau einer Kategorie zugeordnet wird. Eigentlich muss ich an dieser Stelle präziser sagen, dass ein Produkt entweder genau einer oder keiner Kategorie zugeordnet werden kann, was im Designer durch 0..1 kenntlich gemacht wird.
Jede Beziehung im EDM hat zwei Enden, deren Multiplizität entweder durch
- 1 (eins) oder
- 0..1 (keins oder eins) oder
- * (viele)
beschrieben wird. Von den Navigationseigenschaften wird entweder ein Objekt zurückgegeben, wenn die Multiplizität »0« oder »1« ist, oder mehrere Objekte, wenn die Multiplizität »*« ist.
Sie haben an dieser Stelle Ihr erstes Entity Data Model erstellt und sind nun in der Lage, unter Zuhilfenahme des EDM Daten abzufragen. Aber ehe wir im folgenden Kapitel dazu kommen, wollen wir uns das Entity Data Model im Detail ansehen, um es besser zu verstehen.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.