Beziehungen: EF-DesignerRelationships - EF Designer

Hinweis

Diese Seite enthält Informationen zum Einrichten von Beziehungen in Ihrem Modell mit dem EF-Designer.This page provides information about setting up relationships in your model using the EF Designer. Allgemeine Informationen zu Beziehungen in EF und zum Zugreifen auf und Bearbeiten von Daten mithilfe von Beziehungen finden Sie unter Beziehungen & Navigations Eigenschaften.For general information about relationships in EF and how to access and manipulate data using relationships, see Relationships & Navigation Properties.

Zuordnungen definieren Beziehungen zwischen Entitäts Typen in einem Modell.Associations define relationships between entity types in a model. In diesem Thema wird gezeigt, wie Zuordnungen mit dem Entity Framework Designer (EF-Designer) zugeordnet werden.This topic shows how to map associations with the Entity Framework Designer (EF Designer). Die folgende Abbildung zeigt die Hauptfenster, die bei der Arbeit mit dem EF-Designer verwendet werden.The following image shows the main windows that are used when working with the EF Designer.

EF-Designer

Hinweis

Beim Erstellen des konzeptionellen Modells können Warnungen zu nicht zugeordneten Entitäten und Zuordnungen in der Fehlerliste angezeigt werden.When you build the conceptual model, warnings about unmapped entities and associations may appear in the Error List. Sie können diese Warnungen ignorieren, da die Fehler nach dem Generieren der Datenbank aus dem Modell entfernt werden.You can ignore these warnings because after you choose to generate the database from the model, the errors will go away.

Übersicht über ZuordnungenAssociations Overview

Wenn Sie das Modell mit dem EF-Designer entwerfen, stellt eine EDMX-Datei das Modell dar.When you design your model using the EF Designer, an .edmx file represents your model. In der EDMX-Datei definiert ein Association -Element eine Beziehung zwischen zwei Entitäts Typen.In the .edmx file, an Association element defines a relationship between two entity types. 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.An association must specify the entity types that are involved in the relationship and the possible number of entity types at each end of the relationship, which is known as the multiplicity. Die Multiplizität eines Zuordnungs Endes kann über einen Wert von eins (1), NULL oder eins (0.. 1) oder viele ( * ) verfügen.The multiplicity of an association end can have a value of one (1), zero or one (0..1), or many (*). Diese Informationen werden in zwei untergeordneten Endelementen angegeben.This information is specified in two child End elements.

Zur Laufzeit kann auf Entitätstyp Instanzen an einem Ende einer Zuordnung über Navigations Eigenschaften oder Fremdschlüssel zugegriffen werden (wenn Sie Fremdschlüssel in ihren Entitäten verfügbar machen).At run time, entity type instances at one end of an association can be accessed through navigation properties or foreign keys (if you choose to expose foreign keys in your entities). Wenn Fremdschlüssel verfügbar gemacht werden, wird die Beziehung zwischen den Entitäten mit einem referentialeinschränkung -Element verwaltet (ein untergeordnetes Element des Association -Elements).With foreign keys exposed, the relationship between the entities is managed with a ReferentialConstraint element (a child element of the Association element). Es wird empfohlen, Fremdschlüssel für Beziehungen in ihren Entitäten immer verfügbar zu machen.It is recommended that you always expose foreign keys for relationships in your entities.

Hinweis

In der m:n-Zahl ( * : * ) können den Entitäten keine Fremdschlüssel hinzugefügt werden.In many-to-many (*:*) you cannot add foreign keys to the entities. In einer * :- * Beziehung werden die Zuordnungs Informationen mit einem unabhängigen Objekt verwaltet.In a *:* relationship, the association information is managed with an independent object.

Weitere Informationen zu CSDL-Elementen (referentialeinschränkung, Associationusw.) finden Sie in der CSDL-Spezifikation.For information about CSDL elements (ReferentialConstraint, Association, etc.) see the CSDL specification.

Erstellen und Löschen von ZuordnungenCreate and Delete Associations

Durch das Erstellen einer Verknüpfung mit dem EF-Designer wird der Modell Inhalt der EDMX-Datei aktualisiert.Creating an association with the EF Designer updates the model content of the .edmx file. Nachdem Sie eine Zuordnung erstellt haben, müssen Sie die Zuordnungen für die Zuordnung erstellen (siehe weiter unten in diesem Thema).After creating an association, you must create the mappings for the association (discussed later in this topic).

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.This section assumes that you already added the entities you wish to create an association between to your model.

So erstellen Sie eine ZuordnungTo create an association

  1. Klicken Sie mit der rechten Maustaste auf einen leeren Bereich der Entwurfs Oberfläche, zeigen Sie auf Neu hinzufügen, und wählen Sie Zuordnung ... aus.Right-click an empty area of the design surface, point to Add New, and select Association….

  2. Geben Sie im Dialogfeld Zuordnung Hinzufügen die Einstellungen für die Zuordnung ein.Fill in the settings for the association in the Add Association dialog.

    Zuordnung hinzufügen

    Hinweis

    Sie können auswählen, dass den Entitäten an den Enden der Zuordnung keine Navigations Eigenschaften oder Fremdschlüssel Eigenschaften hinzugefügt werden sollen, indem Sie die **Navigations Eigenschaft **löschen und den Entitäts- ** < Typnamen > Entitäts-Kontrollkästchen Fremdschlüssel Eigenschaften hinzufügen **.You can choose to not add navigation properties or foreign key properties to the entities at the ends of the association by clearing the **Navigation Property **and **Add foreign key properties to the <entity type name> Entity **checkboxes. Wird nur eine Navigationseigenschaft hinzugefügt, kann die Zuordnung nur in einer Richtung traversiert werden.If you add only one navigation property, the association will be traversable in only one direction. Falls Sie keine Navigationseigenschaften hinzufügen, müssen Sie Fremdschlüsseleigenschaften hinzufügen, um auf Entitäten an den Enden der Zuordnung zuzugreifen.If you add no navigation properties, you must choose to add foreign key properties in order to access entities at the ends of the association.

  3. Klicken Sie auf OK.Click OK.

So löschen Sie eine ZuordnungTo delete an association

Um eine Zuordnung zu löschen, führen Sie einen der folgenden Schritte aus:To delete an association do one of the following:

  • Klicken Sie mit der rechten Maustaste auf die Verknüpfung auf der EF-Designer Oberfläche, und wählen Sie LöschenRight-click the association on the EF Designer surface and select Delete.

  • - ODER -OR -

  • Wählen Sie eine oder mehrere Zuordnungen aus, und drücken Sie die ENTF-Taste.Select one or more associations and press the DELETE key.

Einschließen von Fremdschlüssel Eigenschaften in Ihre Entitäten (Referenzielle Einschränkungen)Include Foreign Key Properties in Your Entities (Referential Constraints)

Es wird empfohlen, Fremdschlüssel für Beziehungen in ihren Entitäten immer verfügbar zu machen.It is recommended that you always expose foreign keys for relationships in your entities. Entity Framework verwendet eine referenzielle Einschränkung, um zu identifizieren, dass eine Eigenschaft als Fremdschlüssel für eine Beziehung fungiert.Entity Framework uses a referential constraint to identify that a property acts as the foreign key for a relationship.

Wenn Sie beim Erstellen einer Beziehung das Kontrollkästchen Fremdschlüssel Eigenschaften der < > Entität Entitäts Typen Name hinzufügen aktiviert haben, wurde diese referenzielle Einschränkung für Sie hinzugefügt.If you checked the Add foreign key properties to the <entity type name> Entity checkbox when creating a relationship, this referential constraint was added for you.

Wenn Sie den EF-Designer verwenden, um eine referenzielle Einschränkung hinzuzufügen oder zu bearbeiten, fügt der EF-Designer ein referentialeinschränkung-   Element im CSDL-Inhalt der EDMX-Datei hinzu oder ändert es.When you use the EF Designer to add or edit a referential constraint, the EF Designer adds or modifies a ReferentialConstraint element in the CSDL content of the .edmx file.

  • Doppelklicken Sie auf die Zuordnung, die Sie bearbeiten möchten.Double-click the association that you want to edit. Das Dialogfeld referenzielle Einschränkungwird   angezeigt.The Referential Constraint dialog box appears.

  •  Principal   Wählen Sie in der Dropdown Liste Prinzipal die Prinzipal Entität in der referenziellen Einschränkung aus.From the Principal drop-down list, select the principal entity in the referential constraint. Die Schlüsseleigenschaften der Entität werden der Liste Prinzipal Schlüssel   im Dialogfeld hinzugefügt.The entity's key properties are added to the Principal Key list in the dialog box.

  •  Dependent   Wählen Sie in der Dropdown Liste abhängig die abhängige Entität in der referenziellen Einschränkung aus.From the Dependent drop-down list, select the dependent entity in the referential constraint.

  • Wählen Sie für jeden Prinzipal Schlüssel, der über einen abhängigen Schlüssel verfügt, einen entsprechenden abhängigen Schlüssel aus den Dropdown Listen in der Spalte abhängige Schlüsselaus   .For each principal key that has a dependent key, select a corresponding dependent key from the drop-down lists in the Dependent Key column.

    Ref-Einschränkung

  • Klicken Sie auf OK.Click OK.

Zuordnungs Zuordnungen erstellen und bearbeitenCreate and Edit Association Mappings

Im Fenster Mappingdetailsdes EF-Designers können Sie angeben, wie eine Zuordnung der Datenbank zugeordnet werden soll   .You can specify how an association maps to the database in the Mapping Details window of the EF Designer.

Hinweis

Sie können nur Details für die Zuordnungen zuordnen, für die keine referenzielle Einschränkung festgelegt ist.You can only map details for the associations that do not have a referential constraint specified. Wenn eine referenzielle Einschränkung angegeben wird, ist eine Fremdschlüssel Eigenschaft in der Entität enthalten, und Sie können die Zuordnungs Details für die Entität verwenden, um die Spalte zu steuern, der der Fremdschlüssel zugeordnet ist.If a referential constraint is specified then a foreign key property is included in the entity and you can use the Mapping Details for the entity to control which column the foreign key maps to.

Erstellen einer Zuordnungs ZuordnungCreate an association mapping

  • Klicken Sie in der Entwurfs Oberfläche mit der rechten Maustaste auf eine Zuordnung, und wählen Sie Tabellen Zuordnung.Right-click an association in the design surface and select Table Mapping. Dadurch wird die Zuordnungs Zuordnung im Fenster Mappingdetailsangezeigt   .This displays the association mapping in the Mapping Details window.

  • Klicken Sie auf Tabelle oder Sicht hinzufügen.Click Add a Table or View. Eine Dropdownliste wird angezeigt, die die Tabellen im Speichermodell enthält.A drop-down list appears that includes all the tables in the storage model.

  • Wählen Sie die Tabelle aus, der die Zuordnung zugeordnet wird.Select the table to which the association will map. Im Fenster Mappingdetailswerden   beide Enden der Zuordnung und die Schlüsseleigenschaften für den Entitätstyp an jedem Endeangezeigt.The Mapping Details window displays both ends of the association and the key properties for the entity type at each End.

  • Klicken Sie für jede Schlüsseleigenschaft auf das Feld Spalte   , und wählen Sie die Spalte aus, der die Eigenschaft zugeordnet werden soll.For each key property, click the Column field, and select the column to which the property will map.

    Mappingdetails 4

Bearbeiten einer Zuordnungs ZuordnungEdit an association mapping

  • Klicken Sie in der Entwurfs Oberfläche mit der rechten Maustaste auf eine Zuordnung, und wählen Sie Tabellen Zuordnung.Right-click an association in the design surface and select Table Mapping. Dadurch wird die Zuordnungs Zuordnung im Fenster Mappingdetailsangezeigt   .This displays the association mapping in the Mapping Details window.
  • Klicken Sie auf dem < Tabellen > Namen auf Maps.Click Maps to <Table Name>. Eine Dropdownliste wird angezeigt, die die Tabellen im Speichermodell enthält.A drop-down list appears that includes all the tables in the storage model.
  • Wählen Sie die Tabelle aus, der die Zuordnung zugeordnet wird.Select the table to which the association will map. Im Fenster Mappingdetailswerden   beide Enden der Zuordnung und die Schlüsseleigenschaften für den Entitätstyp an jedem Ende angezeigt.The Mapping Details window displays both ends of the association and the key properties for the entity type at each End.
  • Klicken Sie für jede Schlüsseleigenschaft auf das Feld Spalte   , und wählen Sie die Spalte aus, der die Eigenschaft zugeordnet werden soll.For each key property, click the Column field, and select the column to which the property will map.

Bearbeiten und Löschen von Navigations EigenschaftenEdit and Delete Navigation Properties

Navigations Eigenschaften sind Verknüpfungs Eigenschaften, die verwendet werden, um die Entitäten an den Enden einer Zuordnung in einem Modell zu suchen.Navigation properties are shortcut properties that are used to locate the entities at the ends of an association in a model. Navigationseigenschaften können beim Erstellen einer Zuordnung zwischen zwei Entitätstypen erstellt werden.Navigation properties can be created when you create an association between two entity types.

So bearbeiten Sie Navigations EigenschaftenTo edit navigation properties

  • Wählen Sie auf der EF-Designer-Oberfläche eine Navigations Eigenschaft aus.Select a navigation property on the EF Designer surface. Informationen zur Navigations Eigenschaft werden im Visual Studio- Eigenschaften   Fenster angezeigt.Information about the navigation property is displayed in the Visual Studio Properties window.
  • Ändern Sie die Eigenschafts Einstellungen im Eigenschaften   Fenster.Change the property settings in the Properties window.

So löschen Sie Navigations EigenschaftenTo delete navigation properties

  • 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.If foreign keys are not exposed on entity types in the conceptual model, deleting a navigation property may make the corresponding association traversable in only one direction or not traversable at all.
  • Klicken Sie in der EF Designer-Oberfläche mit der rechten Maustaste auf eine Navigations Eigenschaft, und wählen Sie LöschenRight-click a navigation property on the EF Designer surface and select Delete.