tipo di associazione
Un tipo di associazione (detto anche un’associazione) è il blocco predefinito fondamentale per la descrizione delle relazioni in Entity Data Model (EDM). In un modello concettuale, un'associazione rappresenta una relazione tra due tipi di entità (ad esempio Customer
e Order
). In un'applicazione, un'istanza di un'associazione rappresenta un'associazione specifica (ad esempio, un'associazione tra un'istanza di Customer
e una di Order
). Le istanze dell'associazione sono raggruppate logicamente in un set di associazioni.
Una definizione di associazione contiene le informazioni seguenti:
Un nome univoco. (obbligatorio).
Due entità finali dell'associazione, una per ogni tipo di entità nella relazione. (obbligatorio).
Nota
Un'associazione non può rappresentare una relazione tra più di due tipi di entità. Un'associazione può tuttavia definire una relazione interna specificando lo stesso tipo di entità per ognuna delle entità finali dell'associazione.
Un vincolo di integrità referenziale. (Valore facoltativo)
Ogni entità finale dell'associazione deve specificare una molteplicità di entità finale dell'associazione che indica il numero di istanze di tipo di entità che possono trovarsi in un’entità finale dell'associazione. Una molteplicità di entità finale dell'associazione può disporre di un valore pari a uno (1), zero o uno (0..1) o molti (*). 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 Entity Data Model: Chiavi esterne.
Esempio
Nel diagramma seguente viene illustrato un modello concettuale con due associazioni: PublishedBy
e WrittenBy
. Le entità finali dell'associazione per l'associazione PublishedBy
sono i tipi di entità Book
e Publisher
. La molteplicità dell'entità finale Publisher
è uno (1) e la molteplicità dell'entità finale Book
è molti (*), a indicare che un editore pubblica molti libri e un libro viene pubblicato da un solo editore.
ADO.NET Entity Framework usa un linguaggio specifico di dominio (DSL) denominato Conceptual Schema Definition Language (CSDL) per definire i modelli concettuali. Il linguaggio CSDL seguente definisce l'associazione PublishedBy
illustrata nel diagramma precedente:
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
</Association>