Compartir a través de


Elemento AssociationSet (SSDL EntityContainer)

En el Entity Data Model (EDM), el elemento AssociationSet del lenguaje de definición de esquemas de almacenamiento (SSDL) especifica una asociación en los metadatos de almacenamiento.

El modelo de objetos que se generará a partir del esquema conceptual requiere clases programables y estructuras de almacenamiento en las que contener los datos de las aplicaciones generadas con el modelo. Un elemento AssociationSetMapping del lenguaje de especificación de asignaciones (MSL) conecta el elemento AssociationSet definido en el lenguaje de definición de esquemas conceptuales (CSDL) con el elemento AssociationSet del SSDL que describe las estructuras de almacenamiento.

La siguiente sintaxis de CSDL muestra la declaración de un AssociationSet denominado FK_Employee_Employee_ManagerID en el esquema AdventureWorks.Store. Este AssociationSet es la parte de EntityContainer denominada AdventureWorks.Store en los metadatos de AdventureWorks. Aunque este EntityContainer se define en el esquema AdventureWorks.Store, EntityContainer es un elemento independiente.

El elemento AssociationSet asigna un atributo Name e identifica el tipo AssociationType que se usa en esta designación de conjunto de asociación.

  <EntityContainer Name="Adventureworks.Store">
<AssociationSet Name="FK_Employee_Employee_ManagerID"
        Association="Adventureworks.Store.FK_Employee_Employee_ManagerID">
      <End Role="Employee" EntitySet="Employee" />
      <End Role="Employee1" EntitySet="Employee" />
    </AssociationSet>
  </EntityContainer>

  <Association Name="FK_Employee_Employee_ManagerID">
    <End Role="Employee" Type="Adventureworks.Store.Employee" Multiplicity="0..1" />
    <End Role="Employee1" Type="Adventureworks.Store.Employee" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employee">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Employee1">
        <PropertyRef Name="ManagerID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

En este ejemplo, el elemento ReferentialConstraint indica que las asociaciones dependen de las estructuras de base de datos. El elemento ReferentialConstraint especifica un atributo Principal Role y Dependent Role, y, lo que es más importante, un atributo PropertyRef para cada rol que corresponde a la relación de clave externa en la base de datos.

El atributo PropertyRef de la Principal Role especifica la propiedad que se asignará a una columna de clave externa de la tabla de base de datos Employee. El tributo PropertyRef del Dependent Role especifica la columna que contiene la clave externa. Por ejemplo, en la asociación FK_Employee_Employee_ManagerID, el elemento PropertyRef de la Dependent Role es la propiedad EmployeeID del empleado jefe contenido en la columna de clave externa ManagerID de la tabla Employee. Para obtener un ejemplo completo de uso de ReferentialConstraint, vea Implementar asociaciones (EDM).

Cuando se genera el modelo de objetos de programación, se pueden crear instancias de las entidades del tipo FK_Employee_Employee_ManagerID en el código de la aplicación.

Por integridad, la declaración de AssociationType se incluye en el ejemplo después de las definiciones de AssociationSet y EntityContainer.

Vea también

Conceptos

Elemento AssociationSet (CSDL EntityContainer)
Elemento EntitySetMapping (MSL)
Conjuntos de entidades (EDM)
Conjuntos de asociaciones (EDM)
Modelo completo (EDM) de AdventureWorks