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.
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):
Documentation (zero o un elemento)
End (esattamente 2 elementi)
ReferentialConstraint (zero o un elemento)
Elementi Annotation (zero o più elementi)
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento Association.
Nome attributo |
È obbligatorio |
Valore |
---|---|---|
Name |
Sì |
Nome dell'associazione. |
Nota
È 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" >
<OnDelete Action="Cascade" />
</End>
<End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
</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" >
<OnDelete Action="Cascade" />
</End>
<End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Customer">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="Order">
<PropertyRef Name="CustomerId" />
</Dependent>
</ReferentialConstraint>
</Association>
Vedere anche
Concetti
Panoramica su Entity Framework