Поделиться через


Добавление объектов DataRelation (ADO.NET)

В наборе DataSet с несколькими объектами DataTable можно использовать объекты DataRelation для связи таблиц друг с другом, для перехода по таблицам, а также для возвращения дочерних или родительских строк из связанной таблицы.

Для создания объекта DataRelation требуются следующие аргументы: имя создаваемого объекта DataRelation и массив из одной или нескольких ссылок DataColumn на столбцы, которые выступают в роли родительских или дочерних столбцов в этой связи. После создания объекта DataRelation его можно использовать, чтобы переходить между таблицами, а также получать значения.

По умолчанию при добавлении объекта DataRelation в объект DataSet в родительскую таблицу добавляется UniqueConstraint, а в дочернюю — ForeignKeyConstraint. Дополнительные сведения об этих ограничениях по умолчанию см. в разделе Ограничения DataTable (ADO.NET).

В следующем примере кода с помощью двух объектов DataTable в объекте DataSet создается объект DataRelation. Каждая таблица DataTable содержит столбец CustID, который играет роль связи между двумя объектами DataTable. В этом примере один объект DataRelation добавляется в коллекцию Relations объекта DataSet. Первый аргумент в этом примере задает имя создаваемого объекта DataRelation. Второй аргумент задает родительский столбец DataColumn, а третий аргумент задает дочерний столбец DataColumn.

customerOrders.Relations.Add("CustOrders", _
  customerOrders.Tables("Customers").Columns("CustID"), _
  customerOrders.Tables("Orders").Columns("CustID"))
customerOrders.Relations.Add("CustOrders",
  customerOrders.Tables["Customers"].Columns["CustID"],
  customerOrders.Tables["Orders"].Columns["CustID"]);

Объект DataRelation также имеет свойство Nested, которое при значении true делает строки из дочерней таблицы вложенными в связанную строку родительской таблицы, если они написаны как элементы XML при помощи WriteXml. Дополнительные сведения см. в разделе Использование XML в DataSet (ADO.NET).

См. также

Другие ресурсы

Объекты DataSet, DataTable и DataView (ADO.NET)