Elemento ReferentialConstraint (CSDL)

Un elemento ReferentialConstraint in Conceptual Schema Definition Language (CSDL) definisce la funzionalità che è simile a un vincolo di integrità referenziale in un database relazionale. Nello stesso modo in cui una colonna (o più colonne) da una tabella di database può fare riferimento alla chiave primaria di un'altra tabella, una proprietà (o più proprietà) di un tipo di entità può fare riferimento alla chiave di entità di un altro tipo di entità. Il tipo di entità al quale è fatto riferimento viene chiamato l'entità finale principale del vincolo. Il tipo di entità che fa riferimento all'entità finale principale viene chiamato l'entità finale dipendente del vincolo.

Se una chiave esterna esposta a un tipo di entità fa riferimento a una proprietà di un altro tipo di entità, l'elemento ReferentialConstraint definisce un'associazione tra i due tipi di entità. Poiché l'elemento ReferentialConstraint fornisce informazioni sulle modalità con cui due tipi di entità sono correlati, non è necessario alcun elemento AssociationSetMapping corrispondente in Mapping Specification Language (MSL). Un'associazione tra due tipi di entità che non dispongono di chiavi esterne esposte deve disporre di un elemento AssociationSetMapping corrispondente per eseguire il mapping delle informazioni sull'associazione all'origine dati.

Se una chiave esterna non è esposta a un tipo di entità, l'elemento ReferentialConstraint può definire solo un vincolo principale chiave-a-chiave primaria tra il tipo di entità e un altro tipo di entità.

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

Attributi applicabili

L'elemento ReferentialConstraint può disporre di qualsiasi numero di attributi di annotazione (attributi XML personalizzati). 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 ReferentialConstraint utilizzato come parte della definizione dell'associazione PublishedBy.

<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

Concetti

Panoramica su Entity Framework
Specifiche CSDL
Elemento Schema (CSDL)
Elemento Association (CSDL)

Altre risorse

Specifiche CSDL, SSDL e MSL
ADO.NET Entity Data Model Tools
referential integrity constraint (Entity Data Model)