Zuordnungssätze (EDM)

Im Entitätsdatenmodell (EDM) stellt ein AssociationSet einen logischen Container für Zuordnungen eines einzelnen Typs dar. In gleicher Weise stellen Entitätenmengen Container für Entitäten desselben Typs dar. In Schemas definierte Entitätenmengen und Zuordnungssätze werden Tabellen in der Datenbank zugeordnet, die Daten für Anwendungen speichert. Entitätenmengen und Zuordnungssätze bilden die Grundlage für Klassen im Objektmodell, das zum Programmieren des Anwendungscodes verwendet wird.

Die Bezeichnung AssociationSet wird aus zwei Gründen verwendet:

  • Um die Endpunkte einer Association festzulegen.

  • Um Zuordnungen zwischen Entitätsinstanzen zu verwalten.

Da ein EntityType von mehr als einem EntitySet verwendet werden kann, sind Zuordnungssätze erforderlich, um die Endpunkte der Beziehung festzulegen.

Eine Association verbindet zwei oder mehrere Entitätsinstanzen, die zu den beiden in der Association angegebenen Entitätenmengen gehören. Ein AssociationSet enthält ggf. Instanzen der Association.

Entitätstypen sind in Entitätenmengen und Entitätencontainern logisch enthalten und instanziiert. In gleicher Weise werden Zuordnungen in Zuordnungssätzen und Entitätencontainern instanziiert.

Bei Zuordnungen und Zuordnungssätzen handelt es sich um abstrakte Konzepte, vergleichbar mit Entitäten und Entitätenmengen. Bei jeder Implementierung eines AssociationSet handelt es sich um einen abgeleiteten Typ.

Das Association-Attribut eines AssociationSet-Elements gibt eine Association in der folgenden CSDL-Schemasyntax an:

<AssociationSet Name="CustomerOrderSet" Association="CustomerOrderType">

Zwei Enden von EntitySet werden in der End-Eigenschaft von AssociationSet angegeben. Die Zuordnung muss durch den Namespacenamen voll qualifiziert werden.

<AssociationSet Name="CustomerOrderSet" Association=" 
                        MyCompany.LOBSchema.CustomerOrderType">
    <End Role="Orders" EntitySet="CustomerSet" />
    <End Role="OrderedBy" EntitySet="OrderSet" />
</AssociationSet >

Mit den End-Eigenschaften des AssociationSet werden die EntitySet-Instanzen angegeben, die diesen EntityType-Instanzen entsprechen.

Im folgenden Beispiel werden die Deklarationen von zwei Entitätstypen, zwei Entitätenmengen, einer Zuordnung und einem Zuordnungssatz dargestellt:

<?xml version="1.0" encoding="utf-8"?>
<Schema xmlns:cg="https://schemas.microsoft.com/ado/2006/04/codegeneration"
    xmlns:edm="https://schemas.microsoft.com/ado/2006/04/edm"
    xmlns="https://schemas.microsoft.com/ado/2006/04/edm"
    Namespace="MyCompany.LOBSchema" Alias="Self">

    <EntityType Name="Customer">
        <Key>
          <Property Name="CustomerId" Type="Int32" Nullable="false" />
        </Key>
    <!-- Other properties -->
    </EntityType>


<EntityType Name="Order">
    <Key>
      <PropertyRef Name="OrderId" />
    </Key>
    <Property Name="OrderId" Type="Int32" Nullable="false" />
    <!-- Other properties -->
</EntityType>

<Association Name="CustomerOrderType">
    <End Role="Orders" Type="Namespace.Customer" Multiplicity="1" />
    <End Role="OrderedBy" Type=" Namespace.Order" Multiplicity="0..*" />
</Association>

<EntityContainer Name="ContainerType">
    <EntitySet Name="CustomerSet" EntityType=" Namespace.Customer" />
    <EntitySet Name="OrderSet" EntityType=" MyCompany.LOBSchema.Order" />
    <AssociationSet Name="CustomerOrderSet" Association="CustomerOrderType">
        <End Role="Orders" EntitySet=" MyCompany.LOBSchema.CustomerSet" />
        <End Role="OrderedBy" EntitySet="MyCompany.LOBSchema.OrderSet" />
    </AssociationSet>
</EntityContainer>

</Schema>

Dieses Beispiel definiert zuerst Customer- und Order****-Entitäten von EntityType. Anschließend wird die Association mit dem Namen CustomerOrderType definiert. Die Entitätenmengen CustomerSet und OrderSet werden innerhalb des EntityContainer deklariert. Weitere Informationen über Entitätencontainer finden Sie unter Entitätencontainer (EDM) .

Das AssociationSet-Element wird ebenfalls innerhalb von EntityContainer als ein AssociationSet mit dem Namen CustomerOrderSet und dem Typ CustomerOrderType definiert.

Die beiden End-Eigenschaften von CustomerOrderSet sind EntitySet-Typen, in diesem Fall CustomerSet und OrderSet. Die Association-Instanzen befinden sich im CustomerOrderSet und verbinden Customer-Instanzen im CustomerSet mit Order-Instanzen im OrderSet.

Siehe auch

Konzepte

Zuordnung (EDM)
Entity Data Model-Beziehungen
Entity Data Model-Typen
Entitätenmengen (EDM)
Entitätencontainer (EDM)
Schemas (EDM)

Weitere Ressourcen

Schemas und Mappingspezifikation (Entity Framework)