Condividi tramite


Elemento ReferentialConstraint (SSDL)

L'elemento ReferentialConstraint in SSDL (Store Schema Definition Language) rappresenta un vincolo della chiave esterna (chiamato anche vincolo di integrità referenziale) nel database sottostante.Le estremità principale e dipendente del vincolo vengono specificate rispettivamente dagli elementi figlio Principal e Dependent.Alle colonne che fanno parte delle estremità principale e dipendente viene fatto riferimento tramite gli elementi PropertyRef.

ReferentialConstraint è un elemento figlio facoltativo dell'elemento Association.Se un elemento ReferentialConstraint non viene utilizzato per eseguire il mapping del vincolo della chiave esterna specificato nell'elemento Association, deve essere utilizzato un elemento AssociationSetMapping per eseguire tale operazione.

Nell'elemento ReferentialConstraint possono essere inclusi gli elementi figlio seguenti:

Attributi applicabili

È possibile applicare un qualsiasi numero di attributi di annotazione (attributi XML personalizzati) all'elemento ReferentialConstraint.Tuttavia, gli attributi personalizzati non possono appartenere ad alcuno spazio dei nomi XML riservato a SSDL.I nomi completi per due attributi personalizzati qualsiasi non possono essere uguali.

Esempio

Nell'esempio riportato di seguito viene mostrato un elemento Association in cui viene utilizzato un elemento ReferentialConstraint per specificare che le colonne fanno parte del vincolo della chiave esterna FK_CustomerOrders:

<Association Name="FK_CustomerOrders">
  <End Role="Customers" 
       Type="ExampleModel.Store.Customers" Multiplicity="1">
    <OnDelete Action="Cascade" />
  </End>
  <End Role="Orders" 
       Type="ExampleModel.Store.Orders" Multiplicity="*" />
  <ReferentialConstraint>
    <Principal Role="Customers">
      <PropertyRef Name="CustomerId" />
    </Principal>
    <Dependent Role="Orders">
      <PropertyRef Name="CustomerId" />
    </Dependent>
  </ReferentialConstraint>
</Association>
<Association Name="FK_CustomerOrders">
  <End Role="Customers" Type="ExampleModel.Store.Customers" Multiplicity="1">
    <OnDelete Action="Cascade" />
  </End>
  <End Role="Orders" Type="ExampleModel.Store.Orders" Multiplicity="*" />
  <ReferentialConstraint>
    <Principal Role="Customers">
      <PropertyRef Name="CustomerId" />
    </Principal>
    <Dependent Role="Orders">
      <PropertyRef Name="CustomerId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

<Association Name="FK_CustomerOrders">
  <End Role="Customers" Type="ExampleModel.Store.Customers" Multiplicity="1">
    <OnDelete Action="Cascade" />
  </End>
  <End Role="Orders" Type="ExampleModel.Store.Orders" Multiplicity="*" />
  <ReferentialConstraint>
    <Principal Role="Customers">
      <PropertyRef Name="CustomerId" />
    </Principal>
    <Dependent Role="Orders">
      <PropertyRef Name="CustomerId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

Vedere anche

Concetti

Panoramica su Entity Framework

Specifiche SSDL

Elemento AssociationSet (SSDL)

Altre risorse

Specifiche CSDL, SSDL e MSL

Strumenti di ADO.NET Entity Data Model