Asociación (EDM)

En el Entity Data Model (EDM), las relaciones modelan las conexiones lógicas entre las entidades. El EDM admite el AssociationType de relación, que modela la relación entre elementos del mismo nivel entre las entidades.

En una asociación, cada entidad implicada se conoce como extremo. Cada extremo tiene un atributo Role (rol) que se usa para denominar y describir la lógica de cada extremo de la asociación.

Los atributos Type (tipo) de los extremos de una asociación definen los tipos de entidad que participan en la relación.

Las asociaciones tienen un atributo Multiplicity (multiplicidad). El atributo Multiplicity especifica el número de instancias de cada extremo que puede participar en la relación.

En la lógica de muchas aplicaciones LOB, los clientes realizan pedidos y los pedidos deben entregarse a los clientes. La relación entre un cliente y un pedido se puede modelar mediante una asociación del EDM. Los extremos de la asociación son las entidades cliente y pedido. Cada extremo tiene un tipo de entidad. El atributo Role describe la función de la entidad especificada por el atributo Type. En la mayor parte de los casos, cada cliente puede tener cero o más pedidos, pero un pedido se asocia exactamente a un cliente. En otras palabras, la multiplicidad del tipo de cliente es 1 y la del tipo pedido es *. Para obtener más información sobre la multiplicidad, vea Relaciones del Entity Data Model.

Ejemplo

En la sintaxis del lenguaje de definición de esquemas conceptuales (CSDL), un elemento Association especifica la lógica de la relación entre Customers y Orders.

<?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>

El atributo Name de la AssociationOrder_Customer se usa para identificar la relación en todas las operaciones. Cada entidad participante es un extremo. El atributo Type de todas las operaciones. Cada entidad participante es un extremo y especifica los tipos de entidad que participan en la asociación, en este caso, Customers y Orders. Cada extremo tiene un atributo Role y un atributo Multiplicity.

Características de las asociaciones del EDM

Una asociación tiene las siguientes características:

  • Multiplicidad: los elementos extremo de la asociación pueden ser 0..n, donde la cardinalidad de cada elemento extremo puede variar.

  • Pertenencia no exclusiva: un tipo de entidad puede participar en varias asociaciones.

  • Dirección: las asociaciones son bidireccionales entre las entidades y se puede navegar por ellas partiendo de cualquier extremo..

Multiplicity (Multiplicidad)

El atributo Multiplicity define la cardinalidad en todas las operaciones. Cada entidad participante es un elemento extremo de una Association. El ejemplo de CSDL anterior especifica que hay exactamente un Customer (Multiplicty="1") para cero o más pedidos (Multiplicty="*").

En la siguiente tabla se enumeran todos los valores posibles de Multiplicity:

Valor Descripción

0..1

Ninguno o uno

1

Exactamente uno

*

Cero o más

Non-Exclusive Membership (Pertenencia no exclusiva)

Un tipo de entidad puede participar en varias asociaciones.

Direction (Dirección)

Las asociaciones del EDM son bidireccionales.

Vea también

Conceptos

Relaciones del Entity Data Model