Compartir a través de


Elemento Association (SSDL)

En el Entity Data Model (EDM), una asociación en el esquema de metadatos especifica una relación lógica entre los tipos de entidad definidos en el lenguaje de definición de esquemas de almacenamiento (SSDL).

La sintaxis de SSDL para una asociación declarada en el esquema de metadatos se parece a la que se usa en el lenguaje de definición de esquemas conceptuales (CSDL), pero la sintaxis de SSDL incluye atributos que especifican los elementos FromRole y ToRole. Estos atributos son equivalentes a la clave principal y la clave externa en las tablas de base de datos.

En el ejemplo de esquema siguiente se incluye el elemento Schema con los elementos Namespace y Alias de la partición de la base de datos de destino Adventure Works de recursos humanos que se define. Una definición de EntityType es todo lo que se necesita en el ejemplo porque ambos extremos de la asociación Employee_Employee_ManagerID son entidades Employee.

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

  <EntityType Name="Employee">
    <Key>
      <PropertyRef Name="EmployeeID" />
    </Key>
    <Property Name="EmployeeID" Type="int" Nullable="false" />
    <Property Name="NationalIDNumber" Type="nvarchar" Nullable="false" MaxLength="15" />
    <Property Name="ContactID" Type="int" Nullable="false" />
    <Property Name="LoginID" Type="nvarchar" Nullable="false" MaxLength="256" />
    <Property Name="ManagerID" Type="int" />
<!- Some employee properties ommitted for brevity -->
  </EntityType>

  <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 esta declaración de la entidad Employee utilizada en la asociación Employee_Employee_ManagerID, las propiedades de la entidad Employee se designan utilizando tipos de datos del modelo de almacenamiento, en este caso tipos de SQL Server.

El elemento Association define una relación lógica entre dos entidades Employee. Las asignaciones de Type de las propiedades End de Association son ambas entidades Employee. Uno de los empleados se designa como Employee1 con el atributo Role de una propiedad End de la Association.

Para las asignaciones de tipo en las asociaciones se deben utilizar nombres completos. En este ejemplo, la asignación de tipo usa los elementos SelfAlias para el espacio de nombres AdventureWorksHRTarget.

La Mulitiplicity de los atributos End de esta Association indica que un Employeee1 puede participar en cero o más instancias de esta asociación; el jefe puede dirigir a varios empleados, pero un Employee1 subordinado sólo puede tener un jefe y, por lo tanto, participar en cero o una asociación de este tipo.

Una ReferentialConstraint en Association especifica Employee1 como el DependentRole y Employee como el PrincipalRole. Esta restricción corresponde a la clave externa ManagerID en la tabla de datos Employee.

Para obtener más información acerca de los atributos de las asociaciones, vea los temas secundarios siguientes:

Name (SSDL Association)

Atributo Role (SSDL Association)

Atributo Type (SSDL Association)

Atributo Multiplicity (SSDL Association)

Elemento ReferentialConstraint (SSDL Association)

Vea también

Conceptos

Elemento AssociationSet (SSDL EntityContainer)
Elemento Association (CSDL)
Elemento AssociationSetMapping (MSL)
Elemento ReferentialConstraint (SSDL Association)
Modelo completo (EDM) de AdventureWorks