Einschränkung der referenziellen Integrität
Eine Einschränkung der referenziellen Integrität im Entity Data Model (EDM) ähnelt einer Einschränkung der referenziellen Integrität in einer relationalen Datenbank. So wie eine Spalte (oder Spalten) einer Datenbanktabelle auf den Primärschlüssel einer anderen Tabelle verweisen kann, kann eine Eigenschaft (oder Eigenschaften) eines Entitätstyps auf den Entitätsschlüssel eines anderen Entitätstyps verweisen. Der Entitätstyp, auf den verwiesen wird, wird als Prinzipalende der Einschränkung bezeichnet. Der Entitätstyp, der auf das Prinzipalende verweist, wird als abhängiges Ende der Einschränkung bezeichnet.
Eine Einschränkung der referenziellen Integrität wird als Teil einer Zuordnung zwischen zwei Entitätstypen definiert. Die Definition für eine Einschränkung der referenziellen Integrität gibt die folgenden Informationen an:
Das Prinzipalende der Einschränkung. (Ein Entitätstyp, auf dessen Entitätsschlüssel durch das abhängige Ende verwiesen wird.)
Den Entitätsschlüssel des Prinzipalendes.
Das abhängige Ende der Einschränkung. (Ein Entitätstyp, der über eine Eigenschaft oder Eigenschaften verfügt, die auf den Entitätsschlüssel des Prinzipalendes verweisen.)
Die verweisende Eigenschaft oder Eigenschaften des abhängigen Endes.
Mit Einschränkungen der referenziellen Integrität im EDM soll sichergestellt werden, dass gültige Zuordnungen immer vorhanden sind. Weitere Informationen finden Sie unter Fremdschlüsseleigenschaft.
Beispiel
Die unten stehende Abbildung zeigt ein konzeptionelles Modell mit zwei Zuordnungen: WrittenBy
und PublishedBy
. Der Book
-Entitätstyp verfügt über die Eigenschaft PublisherId
, die auf den Entitätsschlüssel des Publisher
-Entitätstyps verweist, wenn Sie eine Einschränkung der referenziellen Integrität für die PublishedBy
-Zuordnung definieren.
Das ADO.NET Entity Framework verwendet eine domänenspezifische Sprache (DSL) mit der Bezeichnung „konzeptionelle Schemadefinitionssprache“ (CSDL), um konzeptionelle Modelle zu definieren. Die folgende CSDL definiert eine Einschränkung der referenziellen Integrität für die oben im konzeptionellen Modell gezeigte PublishedBy
-Zuordnung.
<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>