Condividi tramite


proprietà di chiave esterna

Una proprietà di chiave esterna nel modello EDM (Entity Data Model) è 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 chiave esterna in un database relazionale. Allo stesso modo in cui le colonne chiave esterna vengono usate in un database relazionale per creare relazioni tra righe in 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 ha una proprietà di chiave esterna.

Esempio

Il diagramma seguente illustra un modello concettuale con tre tipi di entità: Book, Publishere Author. Il Book tipo di entità ha una proprietà , PublisherId, che fa riferimento alla chiave di entità del Publisher tipo di entità quando si definisce un vincolo di integrità referenziale sull'associazione PublishedBy .

Esempio refConstraintModel

Il ADO.NET Entity Framework usa un linguaggio specifico del dominio (DSL) denominato linguaggio CSDL (Conceptual Schema Definition Language) per definire modelli concettuali. Il codice CSDL seguente usa la proprietà PublisherId di chiave esterna per definire un vincolo di integrità referenziale sull'associazione PublishedBy illustrata nel modello concettuale illustrato in precedenza.

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

Vedere anche