Einführung in DataRelation-Objekte

Aktualisiert: November 2007

Datasets, die verknüpfte Datentabellen enthalten, verwenden DataRelation-Objekte, um Über-/Unterordnungsbeziehungen zwischen Tabellen darzustellen und verknüpfte Datensätze aus der jeweils anderen Tabelle zurückzugeben. Wenn Sie verknüpfte Tabellen mit dem Assistenten zum Konfigurieren von Datenquellen oder dem Dataset-Designer zu Datasets hinzufügen, wird das DataRelation-Objekt für Sie erstellt und konfiguriert. Weitere Informationen zum Zurückgeben verknüpfter Datensätze finden Sie unter Gewusst wie: Zugreifen auf Datensätze in verknüpften DataTables. Informationen zum Erstellen von Datenbeziehungen finden Sie unter Gewusst wie: Erstellen von DataRelations mit dem Dataset-Designer.

Das DataRelation-Objekt führt zwei Funktionen aus:

  • Es kann die Datensätze verfügbar machen, die mit einem Datensatz verknüpft sind, mit dem Sie arbeiten. Es stellt die untergeordneten Datensätze bereit, wenn Sie mit einem übergeordneten Datensatz arbeiten (GetChildRows), und es stellt den übergeordneten Datensatz bereit, wenn Sie mit einem untergeordneten Datensatz arbeiten (GetParentRow).

  • Es kann Einschränkungen zum Zweck der referenzielle Integrität erzwingen, etwa das Löschen von verknüpften untergeordneten Datensätzen, wenn Sie einen übergeordneten Datensatz löschen.

Es ist wichtig, dass Sie den Unterschied zwischen einer richtigen Verknüpfung und der Funktion eines DataRelation-Objekts verstehen. Bei einer richtigen Verknüpfung werden die Datensätze aus übergeordneten und untergeordneten Tabellen in einem unstrukturierten Recordset zusammengefasst. Wenn Sie ein DataRelation-Objekt verwenden, wird kein neues Recordset erstellt. Stattdessen verfolgt das Beziehungsobjekt die Beziehung zwischen Tabellen und sorgt dafür, dass die übergeordneten und untergeordneten Datensätze synchronisiert werden.

DataRelation-Objekte und Einschränkungen

Ein DataRelation-Objekt wird auch verwendet, um folgende Einschränkungen zu erstellen und zu erzwingen:

  • Eine Unique-Einschränkung, die sicherstellt, dass eine Spalte in der Tabelle keine Duplikate enthält.

  • Eine Fremdschlüsseleinschränkung, mit der die referenzielle Integrität zwischen einer übergeordneten und einer untergeordneten Tabelle in einem Dataset gewährleistet wird.

Einschränkungen, die Sie in einem DataRelation-Objekt festlegen, werden implementiert, indem automatisch die entsprechenden Objekte erstellt oder Eigenschaften festgelegt werden. Wenn Sie mit dem DataRelation-Objekt eine Fremdschlüsseleinschränkung erstellen, werden Instanzen der ForeignKeyConstraint-Klasse zur ChildKeyConstraint-Eigenschaft von DataRelation hinzugefügt.

Eine Unique-Einschränkung wird implementiert, indem Sie einfach die Unique-Eigenschaft einer Datenspalte auf true festlegen, oder indem Sie eine Instanz der UniqueConstraint-Klasse zur ParentKeyConstraint des DataRelation-Objekts hinzufügen. Informationen zum Deaktivieren von Einschränkungen in einem Dataset finden Sie unter Gewusst wie: Deaktivieren von Einschränkungen beim Auffüllen von Datasets.

Regeln für die referenzielle Integrität

Als Teil der Fremdschlüsseleinschränkung können Sie Regeln für die referenzielle Integrität angeben, die in drei Situationen angewendet werden:

  • Wenn ein übergeordneter Datensatz aktualisiert wird.

  • Wenn ein übergeordneter Datensatz gelöscht wird.

  • Wenn eine Änderung akzeptiert oder abgelehnt wird.

Die verfügbaren Regeln sind in der Rule-Enumeration enthalten und werden in der folgenden Tabelle beschrieben.

Regel für die Fremdschlüsseleinschränkung

Aktion

Cascade

Die am übergeordneten Datensatz vorgenommene Änderung (Aktualisieren oder Löschen) wird in den verknüpften Datensätzen der untergeordneten Tabelle ebenfalls vorgenommen.

SetNull

Untergeordnete Datensätze werden nicht gelöscht, der Fremdschlüssel in untergeordneten Datensätzen wird jedoch auf DBNull festgelegt. Mit dieser Einstellung können auch "verwaiste" untergeordnete Datensätze verwendet werden, also Datensätze, die keine Beziehung zu übergeordneten Datensätzen haben.

Hinweis:
Wenn Sie diese Regel verwenden, enthält die untergeordnete Tabelle unter Umständen ungültige Daten.

SetDefault

Der Fremdschlüssel in den verknüpften untergeordneten Datensätzen wird auf seinen Standardwert festgelegt (wie durch die DefaultValue-Eigenschaft der Spalte angegeben).

None

Es werden keine Änderungen an verknüpften untergeordneten Datensätzen vorgenommen. Wenn Sie diese Einstellung verwenden, enthalten untergeordnete Datensätze unter Umständen Verweise auf ungültige übergeordnete Datensätze.

Weitere Informationen zu Aktualisierungen in Datasettabellen finden Sie unter Übersicht über das Speichern von Daten.

Beziehungen – Nur Einschränkungen

Wenn Sie ein DataRelation-Objekt erstellen, können Sie festlegen, dass die Beziehung ausschließlich zum Erzwingen von Einschränkungen verwendet wird, d. h. sie wird nicht für den Zugriff auf verknüpfte Datensätze verwendet. Mit dieser Option können Sie ein etwas leistungsfähigeres Dataset generieren, das weniger Methoden enthält als ein Dataset mit Zugriffsfunktion. Dafür können Sie damit nicht auf verknüpfte Datensätze zugreifen. Eine nur für Einschränkungen vorgesehene Beziehung verhindert z. B. das Löschen eines übergeordneten Datensatzes, zu dem noch untergeordnete Elemente vorhanden sind. Es ist hingegen nicht möglich, über das übergeordnete Elemente auf die untergeordneten Datensätze zuzugreifen.

Siehe auch

Konzepte

Übersicht über Datasets in Visual Studio

DataSet-Designer

Referenz

DataRelation

GetChildRows

GetParentRows

Assistent zum Konfigurieren von Datenquellen

Weitere Ressourcen

Vorbereiten der Anwendung auf den Empfang von Daten

Bearbeiten von Daten in der Anwendung