Beziehungen – EF Designer
Hinweis
Diese Seite enthält Informationen zum Einrichten von Beziehungen in Ihrem Modell mithilfe des EF Designers. Allgemeine Informationen zu Beziehungen in EF und zum Zugreifen auf und Bearbeiten von Daten mithilfe von Beziehungen finden Sie unter Beziehungen & Navigationseigenschaften.
Zuordnungen definieren Beziehungen zwischen Entitätstypen in einem Modell. In diesem Thema wird gezeigt, wie Zuordnungen mit dem Entity Framework Designer (EF Designer) zugeordnet werden. Die folgende Abbildung zeigt die Hauptfenster, die beim Arbeiten mit dem EF Designer verwendet werden.
Hinweis
Beim Erstellen des konzeptionellen Modells können Warnungen zu nicht zugeordneten Entitäten und Zuordnungen in der Fehlerliste angezeigt werden. Sie können diese Warnungen ignorieren, da nach der Auswahl, die Datenbank aus dem Modell zu generieren, die Fehler nicht mehr auftreten.
Übersicht über Zuordnungen
Wenn Sie Ihr Modell mithilfe des EF Designers entwerfen, stellt eine EDMX-Datei Ihr Modell dar. Ein Association-Element definiert in der EDMX-Datei eine Beziehung zwischen zwei Entitätstypen. Eine Zuordnung muss die Entitätstypen, die in der Beziehung enthalten sind, und die mögliche Anzahl von Entitätstypen an den Enden der Beziehung angeben, die auch als Multiplizität bezeichnet wird. Die Multiplizität eines Zuordnungsendes kann über einen Wert von eins (1), null oder eins (0..1) oder n (*) verfügen. Diese Informationen werden in zwei untergeordneten End-Elementen angegeben.
Zur Laufzeit kann auf Entitätstypinstanzen an einem Ende einer Zuordnung über Navigationseigenschaften oder Fremdschlüssel zugegriffen werden (sofern Sie Fremdschlüssel in Ihren Entitätstypen verfügbar machen). Bei verfügbar gemachten Fremdschlüsseln wird die Beziehung zwischen den Entitäten mit einem ReferentialConstraint-Element verwaltet (ein untergeordnetes Element des Association-Elements). Es wird empfohlen, Fremdschlüssel für Beziehungen in Ihren Entitäten immer verfügbar zu machen.
Hinweis
In m:n-Beziehungen (*:*) können den Entitäten keine Fremdschlüssel hinzugefügt werden. In einer *:*-Beziehung werden die Zuordnungsinformationen mit einem unabhängigen Objekt verwaltet.
Informationen zu CSDL-Elementen (ReferentialConstraint, Association usw.) finden Sie in der CSDL-Spezifikation.
Erstellen und Löschen von Zuordnungen
Durch das Erstellen einer Zuordnung mit dem EF Designer wird der Inhalt des Modells der EDMX-Datei aktualisiert. Nach dem Erstellen der Zuordnung müssen die Mappings für die Zuordnung erstellt werden (weiter unten in diesem Thema erläutert).
Hinweis
In diesem Abschnitt wird davon ausgegangen, dass Sie bereits die Entitäten hinzugefügt haben, zwischen denen Sie eine Zuordnung zu Ihrem Modell erstellen möchten.
So erstellen Sie eine Zuordnung
Klicken Sie mit der rechten Maustaste auf einen leeren Bereich der Entwurfsoberfläche, zeigen Sie mit dem Mauszeiger auf Neu hinzufügen, und wählen Sie Zuordnung… aus.
Füllen Sie die Einstellungen für die Zuordnung im Dialogfeld Zuordnung hinzufügen aus.
Hinweis
Wenn Sie den Entitäten an den Enden der Zuordnung keine Navigationseigenschaften oder Fremdschlüsseleigenschaften hinzufügen möchten, deaktivieren Sie die Kontrollkästchen **Navigationseigenschaft** und **Hinzufügen von Fremdschlüsseleigenschaften zur Entität <Name des Entitätstyps>**. Wird nur eine Navigationseigenschaft hinzugefügt, kann die Zuordnung nur in einer Richtung traversiert werden. Falls Sie keine Navigationseigenschaften hinzufügen, müssen Sie Fremdschlüsseleigenschaften hinzufügen, um auf Entitäten an den Enden der Zuordnung zuzugreifen.
Klicken Sie auf OK.
So löschen Sie eine Zuordnung
Gehen Sie wie folgt vor, um eine Zuordnung zu löschen:
Klicken Sie mit der rechten Maustaste auf die Zuordnung auf der EF Designer-Oberfläche, und wählen Sie Löschen aus.
- ODER -
Wählen Sie eine oder mehrere Zuordnungen aus, und drücken Sie die ENTF-Taste.
Einschließen von Fremdschlüsseleigenschaften in Ihre Entitäten (referenzielle Einschränkungen)
Es wird empfohlen, Fremdschlüssel für Beziehungen in Ihren Entitäten immer verfügbar zu machen. Entity Framework verwendet eine referenzielle Einschränkung, um zu identifizieren, dass eine Eigenschaft als Fremdschlüssel für eine Beziehung fungiert.
Wenn Sie beim Erstellen einer Beziehung das Kontrollkästchen Hinzufügen von Fremdschlüsseleigenschaften zur Entität <Name des Entitätstyps> aktiviert haben, wurde diese referenzielle Einschränkung für Sie hinzugefügt.
Wenn Sie den EF Designer verwenden, um eine referenzielle Einschränkung hinzuzufügen oder zu bearbeiten, wird im CSDL-Inhalt der EDMX-Datei ein ReferentialConstraint-Element hinzugefügt bzw. geändert.
Doppelklicken Sie auf die Zuordnung, die Sie bearbeiten möchten. Das Dialogfeld Referenzielle Einschränkung wird angezeigt.
Wählen Sie in der Dropdownliste Prinzipal die Prinzipalentität in der referenziellen Einschränkung aus. Die Schlüsseleigenschaften der Entität werden der Liste Prinzipalschlüssel im Dialogfeld hinzugefügt.
Wählen Sie in der Dropdownliste Abhängig die abhängige Entität in der referenziellen Einschränkung aus.
Wählen Sie für jeden Prinzipalschlüssel mit einem abhängigen Schlüssel einen entsprechenden abhängigen Schlüssel in den Dropdownlisten in der Spalte Abhängiger Schlüssel aus.
Klicken Sie auf OK.
Erstellen und Bearbeiten von Zuordnungsmappings
Sie können angeben, wie eine Zuordnung der Datenbank im Fenster Mappingdetails des EF Designers zugeordnet wird.
Hinweis
Sie können nur Details für die Zuordnungen zuordnen, für die keine referenzielle Einschränkung angegeben ist. Wenn eine referenzielle Einschränkung angegeben wird, wird eine Fremdschlüsseleigenschaft in die Entität eingeschlossen, und Sie können die Mappingdetails für die Entität verwenden, um zu steuern, welcher Spalte der Fremdschlüssel zugeordnet ist.
Erstellen eines Zuordnungsmappings
Klicken Sie mit der rechten Maustaste auf eine Zuordnung auf der Entwurfsoberfläche, und wählen Sie Tabellenmapping aus. Dadurch wird das Zuordnungsmapping im Fenster Mappingdetails angezeigt.
Klicken Sie auf Tabelle oder Ansicht hinzufügen. Eine Dropdownliste wird angezeigt, die die Tabellen im Speichermodell enthält.
Wählen Sie die Tabelle aus, der die Zuordnung zugeordnet wird. Im Fenster Mappingdetails werden beide Enden der Zuordnung und die Schlüsseleigenschaften des Entitätstyps an jedem Ende angezeigt.
Klicken Sie für jede Schlüsseleigenschaft auf das Feld Spalte, und wählen Sie die Spalte aus, der die Eigenschaft zugeordnet wird.
Bearbeiten eines Zuordnungsmappings
- Klicken Sie mit der rechten Maustaste auf eine Zuordnung auf der Entwurfsoberfläche, und wählen Sie Tabellenmapping aus. Dadurch wird das Zuordnungsmapping im Fenster Mappingdetails angezeigt.
- Klicken Sie auf Wird <Tabellenname> zugeordnet. Eine Dropdownliste wird angezeigt, die die Tabellen im Speichermodell enthält.
- Wählen Sie die Tabelle aus, der die Zuordnung zugeordnet wird. Im Fenster Mappingdetails werden beide Enden der Zuordnung und die Schlüsseleigenschaften des Entitätstyps an jedem Ende angezeigt.
- Klicken Sie für jede Schlüsseleigenschaft auf das Feld Spalte, und wählen Sie die Spalte aus, der die Eigenschaft zugeordnet wird.
Bearbeiten und Löschen von Navigationseigenschaften
Navigationseigenschaften sind Verknüpfungseigenschaften, die zum Suchen der Entitäten an den Enden einer Zuordnung in einem Modell verwendet werden. Navigationseigenschaften können beim Erstellen einer Zuordnung zwischen zwei Entitätstypen erstellt werden.
So bearbeiten Sie Navigationseigenschaften
- Wählen Sie in der EF Designer-Oberfläche eine Navigationseigenschaft aus. Informationen zur Navigationseigenschaft werden im Fenster Eigenschaften von Visual Studio angezeigt.
- Ändern Sie die Eigenschafteneinstellungen im Fenster Eigenschaften.
So löschen Sie Navigationseigenschaften
- Wenn Fremdschlüssel nicht für Entitätstypen im konzeptionellen Modell verfügbar gemacht werden, kann das Löschen einer Navigationseigenschaft dazu führen, dass die entsprechende Zuordnung nur in einer Richtung oder gar nicht traversiert werden kann.
- Klicken Sie mit der rechten Maustaste auf eine Navigationseigenschaft auf der EF Designer-Oberfläche, und wählen Sie Löschen aus.