Freigeben über


Zuordnung (EDM)

Im Entitätsdatenmodell (EDM) modellieren Beziehungen logische Verbindungen zwischen Entitäten. Das EDM unterstützt den AssociationType für Beziehungen, der die Peer-to-Peer-Beziehung zwischen Entitäten modelliert.

In einer Zuordnung wird jede beteiligte Entität als End bezeichnet. Jedes End verfügt über ein Role-Attribut, das zur Benennung und Beschreibung der Logik für jedes End der Zuordnung verwendet wird.

Die Type-Attribute an den Enden einer Zuordnung definieren die Entitätstypen, die miteinander in Beziehung stehen.

Zuordnungen verfügen über ein Multiplicity-Attribut. Das Multiplicity-Attribut legt die Anzahl von Instanzen für jedes End fest, die an der Beziehung beteiligt sein können.

In der Logik vieler Geschäftsbereichsanwendungen geben Kunden Aufträge auf, und Aufträge müssen an Kunden ausgeliefert werden. Die Beziehung zwischen einem Kunden und einem Auftrag kann durch eine EDM-Zuordnung modelliert werden. Die Enden der Zuordnung sind die Kunden- und Auftragsentitäten. Jedes End hat einen Entitäts-Type. Das Role-Attribut beschreibt die Funktion der durch das Type-Attribut angegebenen Entität. In den meisten Fällen kann der Kunde über null oder mehr Aufträge verfügen, jeder Auftrag ist jedoch exakt einem Kunden zugeordnet. Dies bedeutet, die Multiplizität des Kundentyps ist 1, und die Multiplizität des Auftragstyps ist *. Weitere Informationen über Multiplizität finden Sie unter Entity Data Model-Beziehungen.

Beispiel

In der folgenden CSDL-Syntax wird mit einem Association-Element die Logik der Beziehung zwischen Customers und Orders festgelegt.

<?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>
      <PropertyRef Name="CustomerId" />
    </Key>
    <Property Name="CustomerId" Type="Guid" Nullable="false" />
    <Property Name="Name" Type="String" Nullable="false" />
    <Property Name="Address" Type="String" Nullable="false" />
    <Property Name="City" Type="String" Nullable="false" />
    <NavigationProperty Name="Orders" Relationship="Self.Order_Customer" FromRole="Customers" ToRole="Orders" />
  </EntityType>

  <EntityType Name="Order">
    <Key>
      <PropertyRef Name="OrderId" />
    </Key>
    <Property Name="OrderId" Type="String" Nullable="false" />
    <Property Name="TotalAmount" Type="Decimal" />
    <Property Name="Tax" Type="Decimal" />
    <Property Name="ShippingAddress" Type="String" />
    <NavigationProperty Name="Customer" Relationship="Self.Order_Customer" FromRole="Orders" ToRole="Customers" />
  </EntityType>

  <Association Name="Order_Customer">
    <End Role="Customer" Type="OrderInfoModel.Customers"
                             Multiplicity="1" />
    <End Role="Orders" Type="OrderInfoModel.Order" Multiplicity="*" />
  </Association>


    <EntityContainer Name="LOBSchemaData">
        <EntitySet Name="Customers" EntityType="Self.Customer" />
        <EntitySet Name="Orders" EntityType="Self.Order" />
        <AssociationSet Name="Customers_Orders"
                        Association="Self.Order_Customer">
            <End Role="Customer" EntitySet="Customers" />
            <End Role="Order" EntitySet="Orders" />
        </AssociationSet>
        
    </EntityContainer>
</Schema>

Mit dem Name-Attribut der Order_CustomerAssociation wird die Beziehung für alle Vorgängen festgelegt. Jede beteiligte Entität ist ein End. Das Type-Attribut für alle Vorgänge. Jede beteiligte Entität ist ein End und gibt die an der Zuordnung beteiligten Entitätstypen an, in diesem Fall Customers und Orders. Jedes End verfügt über ein Role-Attribut und ein Multiplicity-Attribut.

Features von EDM-Zuordnungen

Eine Zuordnung weist folgende Merkmale auf:

  • Multiplizität: Die Anzahl der End-Zuordnungselemente kann zwischen 0 (null) und n liegen. Dabei kann die Kardinalität jedes End variieren.

  • Nicht exklusive Mitgliedschaft: Ein Entitätstyp kann an mehreren Zuordnungen teilnehmen.

  • Richtung: Zuordnungen sind zwischen den Entitäten bidirektional und können von jedem End aus navigiert werden.

Multiplizität

Das Multiplicity-Attribut definiert die Kardinalität für alle Vorgänge. Jede teilnehmende Entität ist ein End-Element einer Association. Im vorherigen CSDL-Beispiel wird angegeben, dass exakt ein Customer (Multiplicty="1") null oder mehreren Aufträgen (Multiplicty="*") zugeordnet ist.

In der folgenden Tabelle werden alle möglichen Werte für Multiplicity aufgeführt:

Wert Beschreibung

0..1

0 oder 1

1

Exakt 1

*

0 oder mehr

Nicht exklusive Mitgliedschaft

Ein Entitätstyp kann an mehreren Zuordnungen beteiligt sein.

Richtung

Zuordnungen im EDM sind bidirektional.

Siehe auch

Konzepte

Entity Data Model-Beziehungen