proprietà di chiave esterna
Una proprietà di chiave esterna in Entity Data Model (EDM) è una proprietà di tipo primitivo (o un set di proprietà di tipo primitivo) in un tipo di entità che contiene la chiave di entità di un altro tipo di entità.
Una proprietà di chiave esterna è analoga a una colonna di chiave esterna in un database relazionale. Nello stesso modo in cui le colonne di chiave esterna vengono usate in un database relazionale per creare relazioni tra le righe nelle tabelle, le proprietà di chiave esterna in un modello concettuale vengono usate per stabilire associazioni tra tipi di entità. Un vincolo di integrità referenziale viene usato per definire un'associazione tra due tipi di entità quando uno dei tipi dispone di una proprietà di chiave esterna.
Esempio
Nel diagramma seguente viene illustrato un modello concettuale con tre tipi di entità: Book
, Publisher
e Author
. Il tipo di entità Book
dispone di una proprietà, PublisherId
, che fa riferimento alla chiave di entità del tipo di entità Publisher
quando si definisce un vincolo di integrità referenziale sull'associazione PublishedBy
.
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 usa la proprietà di chiave esterna PublisherId
per definire un vincolo di integrità referenziale sull'associazione PublishedBy
illustrata nel modello concettuale precedente.
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
</End>
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
<ReferentialConstraint>
<Principal Role="Publisher">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="Book">
<PropertyRef Name="PublisherId" />
</Dependent>
</ReferentialConstraint>
</Association>