Condividi tramite


Elemento Association (SSDL)

In Entity Data Model (EDM) un'associazione nello schema dei metadati specifica una relazione logica tra tipi di entità definita in SSDL (Store Scheme Definition Language).

La sintassi SSDL per un'associazione dichiarata nello schema dei metadati assomiglia a quella utilizzata in CSDL (Conceptual Schema Definition Language (CSDL), ma la sintassi SSDL include gli attributi che specificano FromRole e ToRole. Questi attributi sono equivalenti alla chiave primaria e alla chiave esterna nelle tabelle di database.

Nell'esempio di schema seguente è incluso l'elemento Schema con Namespace e Alias della partizione del database di destinazione Human Resources di Adventure Works definita. Una definizione di EntityType è l'unico elemento necessario nell'esempio in quanto entrambe le entità finali dell'associazione Employee_Employee_ManagerID sono entità 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>

In questa dichiarazione dell'entità Employee utilizzata nell'associazione Employee_Employee_ManagerID le proprietà dell'entità Employee sono designate utilizzando tipi di dati del modello di archiviazione, in questo caso tipi SQL Server.

L'elemento Association definisce una relazione logica tra due entità Employee. Le assegnazioni di Type delle proprietà degli oggetti End di Association sono entrambe entità Employee. Uno dei dipendenti è designato come Employee1 dall'attributo Role di una proprietà End di Association.

Per le assegnazioni del tipo nelle associazioni devono essere utilizzati nomi completi. In questo esempio per l'assegnazione del tipo viene utilizzato l'AliasSelf per lo spazio dei nomi AdventureWorksHRTarget.

L'attributo Mulitiplicity degli attributi End di questo oggetto Association indica che un'entità Employeee1 può partecipare a zero o più istanze di questa associazione. Il manager può essere responsabile di diversi dipendenti, ma un'entità Employee1 può essere sottoposta a un solo manager e pertanto può partecipare a una o a zero associazioni di questo tipo.

Un oggetto ReferentialConstraint su Association specifica Employee1 come DependentRole e Employee come PrincipalRole. Questo vincolo corrisponde alla chiave esterna ManagerID nella tabella dati Employee.

Per ulteriori informazioni sugli attributi delle associazioni, vedere gli argomenti correlati seguenti:

Name (Association SSDL)

Attributo Role (Association SSDL)

Attributo Type (Association SSDL)

Attributo Multiplicity (Association SSDL)

Elemento ReferentialConstraint (Association SSDL)

Vedere anche

Concetti

Elemento AssociationSet (EntityContainer SSDL)
Elemento Association (CSDL)
Elemento AssociationSetMapping (MSL)
Elemento ReferentialConstraint (Association SSDL)
Modello completo di AdventureWorks (EDM)