ReferentialConstraint-Element (CSDL)
Ein ReferentialConstraint-Element in konzeptioneller Schemadefinitionssprache (CSDL) definiert die Funktionalität, die einer Einschränkung der referenziellen Integrität in einer relationalen Datenbank ähnlich ist.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.
Wenn ein Fremdschlüssel, der für einen Entitätstyp verfügbar gemacht wird, auf eine Eigenschaft eines anderen Entitätstyps verweist, definiert das ReferentialConstraint-Element eine Zuordnung zwischen den zwei Entitätstypen.Da das ReferentialConstraint-Element Informationen darüber bereitstellt, wie zwei Entitätstypen zueinander in Beziehung stehen, ist kein entsprechendes AssociationSetMapping-Element in der Mapping Specification Language (MSL) erforderlich.Eine Zuordnung zwischen zwei Entitätstypen, für die keine Fremdschlüssel verfügbar sind, muss ein entsprechendes AssociationSetMapping-Element aufweisen, um der Datenquelle Zuordnungsinformationen zuzuordnen.
Wenn ein Fremdschlüssel für einen Entitätstyp nicht verfügbar ist, kann das ReferentialConstraint-Element zwischen dem Entitätstyp und einem anderen Entitätstyp nur eine Primärschlüssel-zu-Primärschlüssel-Einschränkung definieren.
Ein ReferentialConstraint-Element kann die folgenden untergeordneten Elemente aufweisen (der vorliegenden Reihenfolge entsprechend):
Dokumentation (kein (null) oder ein Element)
Prinzipal (genau ein Element)
Abhängig (genau ein Element)
Anmerkungselemente (kein Element (null) oder mehrere Elemente)
Anwendbare Attribute
Das ReferentialConstraint-Element kann über eine beliebige Anzahl von Anmerkungsattributen (benutzerdefinierte XML-Attribute) verfügen.Benutzerdefinierte Attribute dürfen jedoch zu keinem XML-Namespace gehören, der für CSDL reserviert ist.Die vollqualifizierten Namen für zwei benutzerdefinierte Attribute dürfen nicht übereinstimmen.
Beispiel
Das folgende Beispiel zeigt ein ReferentialConstraint-Element, das als Teil der Definition der PublishedBy-Zuordnung verwendet wird.
<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>
Siehe auch
Konzepte
Übersicht über das Entity Framework
Einschränkung der referenziellen Integrität