Condividi tramite


Elemento Association (CSDL)

L'elemento Association definisce una relazione tra due tipi di entità. Un'associazione deve specificare i tipi di entità coinvolti nella relazione e il possibile numero di tipi di entità a ogni entità finale della relazione, che è noto come molteplicità. Una molteplicità di un'entità finale dell'associazione può avere un valore pari a uno (1), zero o uno (0..1) o molti (*). Queste informazioni vengono specificate in due elementi End figlio.

Le istanze del tipo di entità in corrispondenza di un'entità finale di un'associazione sono accessibili attraverso proprietà di navigazione o chiavi esterne se sono esposte in un tipo di entità. Per ulteriori informazioni, vedere Elemento NavigationProperty, Elemento ReferentialConstraint e Definizione e gestione delle relazioni (Entity Framework).

In un'applicazione, un'istanza di un'associazione rappresenta un'associazione specifica tra istanze di tipi di entità. Le istanze dell'associazione sono raggruppate logicamente in un set di associazioni. Per ulteriori informazioni, vedere Elemento AssociationSet.

Un elemento Association può includere i seguenti elementi figlio (nell'ordine elencato):

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento Association.

Nome attributo È obbligatorio Valore

Name

Nome dell'associazione.

Bb399734.note(it-it,VS.100).gifNota:
È possibile applicare un qualsiasi numero di attributi di annotazione (attributi XML personalizzati) all'elemento Association.Tuttavia, gli attributi personalizzati non possono appartenere ad alcuno spazio dei nomi XML riservato a CSDL.I nomi completi per due attributi personalizzati qualsiasi non possono essere uguali.

Esempio

Nell'esempio seguente viene mostrato un elemento Association che definisce l'associazione CustomerOrders quando le chiavi esterne non sono state esposte sui tipi di entità Customer e Order. I valori Multiplicity per ciascun elemento End dell'associazione indicano che è possibile associare molti Orders a un Customer, ma solo un Customer può essere associato a un Order. Inoltre, l'elemento OnDelete indica che tutti gli Orders che sono correlati a un particolare Customer e che sono stati caricati in ObjectContext saranno eliminati se verrà eliminato Customer.

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

Nell'esempio seguente viene mostrato un elemento Association che definisce l'associazione CustomerOrders quando le chiavi esterne sono state esposte sui tipi di entità Customer e Order. Con le chiavi esterne esposte, la relazione tra le entità viene gestita con un elemento ReferentialConstraint. Un elemento AssociationSetMapping corrispondente non è necessario per eseguire il mapping di questa associazione all'origine dati.

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

Vedere anche

Concetti

Panoramica su Entity Framework
Specifiche CSDL
Elemento Schema (CSDL)

Altre risorse

Specifiche CSDL, SSDL e MSL
ADO.NET Entity Data Model Tools
association type (Entity Data Model)