Freigeben über


Referenzielle Einschränkungen (Entity Framework)

In einem Entity Data Model (EDM) können referenzielle Einschränkungen zwischen verbundenen Objekten, wie beispielsweise dem SalesOrderHeader-Objekt und dem SalesOrderDetail-Objekt, bestehen. Diese Einschränkungen werden in der CSDL-Datei angegeben. Weitere Informationen finden Sie unter ReferentialConstraint-Element (EntityContainer CSDL).

NoteHinweis

Object Services erzwingt nicht alle Einschränkungen, die in einem EDM ausgedrückt werden können. Beispielsweise erzwingt Object Services nicht Kardinalitätseinschränkungen für Beziehungen. Dies kann zu inkonsistenten Ergebnissen beim Speichern von Änderungen an verbundenen Objekten in der Datenquelle führen. Stellen Sie sicher, dass alle wichtigen Modelleinschränkungen durch die Datenquelle erzwungen werden.

Wenn Sie mit Objekten arbeiten, die über eingeschränkte Beziehungen verfügen, beachten Sie die folgenden Punkte:

  • Es kann keine abhängigen (untergeordneten) Objekte ohne eine definierte Beziehung zum übergeordneten Objekt geben.

  • Beim Erstellen eines neuen untergeordneten Objekts muss das übergeordnete Objekt vor dem Aufruf von SaveChanges im Objektkontext oder in der Datenquelle vorhanden sein. Andernfalls wird eine InvalidOperationException ausgelöst.

  • Verwenden Sie die Add-Methode, um der EntityCollection des übergeordneten Objekts untergeordnete Objekte hinzuzufügen. Auf die Auflistung von untergeordneten Objekten kann von einer für die Beziehung definierten Navigationseigenschaft oder von der GetRelatedEnd-Methode oder der GetRelatedCollection-Methode der RelationshipManager-Eigenschaft des übergeordneten Objekts aus zugegriffen werden.

  • Beim Löschen des übergeordneten Objekts werden auch alle untergeordneten Objekte in der eingeschränkten Beziehung gelöscht. Das Ergebnis ist das gleiche wie beim Aktivieren der CascadeDelete-Eigenschaft in der Zuordnung für die Beziehung.

  • Durch das Entfernen der Beziehung wird das untergeordnete Objekt gelöscht. Das bedeutet, dass ein Aufruf von Remove für EntityCollection sowohl die Beziehung als auch das untergeordnete Objekt zum Löschen kennzeichnet.

  • Nachdem eine Beziehung erstellt wurde, kann sie nur durch folgende Vorgehensweise geändert werden:

    1. Löschen Sie die vorhandene Beziehung.

    2. Rufen Sie SaveChanges auf.

    3. Fügen Sie das dauerhaft gespeicherte untergeordnete Objekt der EntityCollection des neuen übergeordneten Objekts hinzu.

Siehe auch

Weitere Ressourcen

Arbeiten mit Objekten (Entity Framework)