Compartir a través de


Elemento Association (CSDL)

Una asociación especifica una relación lógica entre entidades en el Entity Data Model (EDM). Una asociación se declara y define en el esquema conceptual con el lenguaje de definición de esquemas conceptuales (CSDL).

La sintaxis siguiente muestra la declaración y la definición de una asociación entre dos entidades del mismo tipo. Ambos extremos de la asociación son entidades empleado. Un empleado es el jefe y el otro su subordinado.

La sintaxis mostrada aquí incluye el elemento Schema con el Namespace y el Alias de Adventure Works Human Resources Model que se va a definir. Además, se incluye la declaración de la entidad Employee que se usa en la Association.

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

  <EntityType Name="Employee">
    <Key>
      <PropertyRef Name="EmployeeID" />
    </Key>
    <Property Name="EmployeeID" Type="Int32" Nullable="false" />
    <Property Name="NationalIDNumber" Type="String" Nullable="false" />
    <Property Name="LoginID" Type="String" Nullable="false" />
    <Property Name="Title" Type="String" Nullable="false" />
    <Property Name="BirthDate" Type="DateTime" Nullable="false" />
    <Property Name="Gender" Type="String" Nullable="false" />
    <Property Name="HireDate" Type="DateTime" Nullable="false" />
    <Property Name="SalariedFlag" Type="Boolean" Nullable="false" />
    <Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
<!- Some employee properties ommitted for brevity -->

    <NavigationProperty Name="Employee1"
        Relationship="Adventureworks.FK_Employee_Employee_ManagerID"
        FromRole="Employee" ToRole="Employee1" />

  </EntityType>

  <Association Name="Employee_Employee_ManagerID">
    <End Role="Employee" Type="Self.Employee" Multiplicity="0..1" />
    <End Role="Employee1" Type="Self.Employee"
                                              Multiplicity="*" />
  </Association>

El elemento Association especifica una relación lógica entre las entidades Employee, según se indica con las asignaciones Type de las propiedades End en la Association. Ambos extremos de la asociación son del tipo Employee. Uno de los empleados se designa como Employee1 con el atributo Role de una propiedad End de la Association. El atributo Multiplicity de los atributos End en este ejemplo indica que un Employee que sea jefe puede dirigir a cualquier número de instancias de Employee1. La NavigationProperty en la definición de Employee muestra la unión entre un empleado que sea jefe y los empleados subordinados.

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 AdventureWorksHRModel.

Vea también

Conceptos

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

Otros recursos

Especificaciones del EDM