Association (Elemento) (CSDL)

Un elemento Association define una relación de asociación entre dos tipos de entidad. Una asociación debe especificar los tipos de entidad que están implicados en la relación y el posible número de tipos de entidad en cada extremo de la relación, que se conoce como multiplicidad. La multiplicidad de extremo de asociación puede tener el valor uno (1), cero o uno (0..1), o muchos (*). Esta información se especifica en dos elementos End secundarios.

Es posible obtener acceso a las instancias de tipo de entidad situadas en un extremo de la asociación a través de las propiedades de navegación o las claves externas, si estas se exponen en un tipo de entidad. Para obtener más información, vea elemento NavigationProperty, elemento ReferentialConstraint y Definir y administrar relaciones (Entity Framework).

En una aplicación, una instancia de una asociación representa una asociación concreta entre las instancias de tipos de entidad. Las instancias de asociación se agrupan de manera lógica en un conjunto de asociaciones. Para obtener más información, vea el elemento AssociationSet.

Un elemento Association puede tener los elementos secundarios siguientes (en el orden mostrado):

Atributos aplicables

En la tabla siguiente se describen los atributos que se pueden aplicar al elemento Association.

Nombre de atributo Es necesario Valor

Name

Nombre de la asociación.

Bb399734.note(es-es,VS.100).gifNota:
Se puede aplicar cualquier número de atributos de anotación (atributos XML personalizados) al elemento Association.Sin embargo, es posible que los atributos personalizados no pertenezcan a ningún espacio de nombres XML reservado para CSDL.Dos atributos personalizados cualesquiera no pueden tener nombres completos idénticos.

Ejemplo

El siguiente ejemplo muestra un elemento Association que define la asociación CustomerOrders cuando las claves externas no se han expuesto en los tipos de entidad Order y Customer. Los valores de Multiplicity para cada End de la asociación indican que se pueden asociar varios Orders con un Customer, pero que solo se puede asociar un Customer con un Order. Además, el elemento OnDelete indica que todos los Orders relacionados con un determinado Customer y que se han cargado en la instancia de ObjectContext se eliminarán si se elimina el Customer.

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" />
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*">
        <OnDelete Action="Cascade" />
  </End>
</Association>

El siguiente ejemplo muestra un elemento Association que define la asociación CustomerOrders cuando las claves externas se han expuesto en los tipos de entidad Order y Customer. Con claves externas expuestas, la relación entre las entidades se administra con un elemento ReferentialConstraint. Un elemento AssociationSetMapping correspondiente no es necesario para asignar esta asociación al origen de datos.

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" />
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*">
         <OnDelete Action="Cascade" />
  </End>
  <ReferentialConstraint>
       <Principal Role="Customer">
           <PropertyRef Name="Id" />
       </Principal>
       <Dependent Role="Order">
            <PropertyRef Name="CustomerId" />
        </Dependent>
  </ReferentialConstraint>
</Association>

Vea también

Conceptos

Información general de Entity Framework
Especificación CSDL
Schema (Elemento) (CSDL)

Otros recursos

Especificaciones CSDL, SSDL y MSL
ADO.NET Entity Data Model Tools
association type (Entity Data Model)