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


DataRelation Класс

Определение

Представляет связь родительского или дочернего объекта между двумя DataTable объектами.

public ref class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
public class DataRelation
public class DataRelation
[System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))]
[System.Serializable]
public class DataRelation
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
type DataRelation = class
type DataRelation = class
[<System.ComponentModel.TypeConverter(typeof(System.Data.RelationshipConverter))>]
[<System.Serializable>]
type DataRelation = class
Public Class DataRelation
Наследование
DataRelation
Атрибуты

Примеры

В следующем примере создается новый DataRelation объект и добавляется в DataRelationCollection объект DataSet.

private void CreateRelation()
{
    // Get the DataColumn objects from two DataTable objects
    // in a DataSet. Code to get the DataSet not shown here.
    DataColumn parentColumn =
        DataSet1.Tables["Customers"].Columns["CustID"];
    DataColumn childColumn =
        DataSet1.Tables["Orders"].Columns["CustID"];
    // Create DataRelation.
    DataRelation relCustOrder;
    relCustOrder = new DataRelation("CustomersOrders",
        parentColumn, childColumn);
    // Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder);
}
Private Sub CreateRelation()
    ' Get the DataColumn objects from two DataTable objects 
    ' in a DataSet. Code to get the DataSet not shown here.
    Dim parentColumn As DataColumn = _
        DataSet1.Tables("Customers").Columns("CustID")
    Dim childColumn As DataColumn = DataSet1.Tables( _
        "Orders").Columns("CustID")

    ' Create DataRelation.
    Dim relCustOrder As DataRelation
    relCustOrder = New DataRelation( _
        "CustomersOrders", parentColumn, childColumn)

    ' Add the relation to the DataSet.
    DataSet1.Relations.Add(relCustOrder)
End Sub

Комментарии

Используется DataRelation для связи двух DataTable объектов друг с другом через DataColumn объекты. Например, в связи "Клиент-заказы" таблица "Клиенты" является родительской, а таблица "Заказы" является дочерним элементом связи. Это похоже на связь первичного ключа и внешнего ключа. Дополнительные сведения см. в разделе Навигация по DataRelations.

Связи создаются между соответствующими столбцами в родительских и дочерних таблицах. То есть DataType значение обоих столбцов должно быть одинаковым.

Связи также могут каскадировать различные изменения от родительского DataRow элемента к дочерним строкам. Чтобы управлять изменением значений в дочерних строках, добавьте его ForeignKeyConstraint в ConstraintCollectionDataTable объект. Определяет ConstraintCollection , какое действие следует предпринять при удалении или обновлении значения в родительской таблице.

DataRelation При создании он сначала проверяет, можно ли установить связь. После добавления DataRelationCollectionв него связь сохраняется, разрешая любые изменения, которые будут недействительными. Между периодом DataRelation создания и добавления в него DataRelationCollectionможно внести дополнительные изменения в родительские или дочерние строки. Исключение создается, если это вызывает связь, которая больше не является допустимой.

Замечание

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

DataRelation объекты содержатся в DataRelationCollectionобъекте, к которому можно получить доступ через Relations свойство DataSetобъекта, а также ChildRelationsParentRelations свойства объекта DataTable.

Конструкторы

Имя Описание
DataRelation(String, DataColumn, DataColumn, Boolean)

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

DataRelation(String, DataColumn, DataColumn)

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

DataRelation(String, DataColumn[], DataColumn[], Boolean)

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

DataRelation(String, DataColumn[], DataColumn[])

Инициализирует новый экземпляр класса с помощью указанного DataRelationDataRelation имени и сопоставленных массивов родительских и дочерних DataColumn объектов.

DataRelation(String, String, String, String, String, String[], String[], Boolean)

Этот конструктор предоставляется для поддержки времени разработки в среде Visual Studio.

DataRelation(String, String, String, String[], String[], Boolean)

Этот конструктор предоставляется для поддержки времени разработки в среде Visual Studio.

Свойства

Имя Описание
ChildColumns

Возвращает дочерние DataColumn объекты этого отношения.

ChildKeyConstraint

ForeignKeyConstraint Возвращает отношение.

ChildTable

Возвращает дочернюю таблицу этого отношения.

DataSet

Возвращает объект, DataSet к которому DataRelation принадлежит.

ExtendedProperties

Возвращает коллекцию, в которой хранятся настраиваемые свойства.

Nested

Возвращает или задает значение, указывающее, вложены ли DataRelation объекты.

ParentColumns

Возвращает массив DataColumn объектов, которые являются родительскими столбцами этого DataRelationобъекта.

ParentKeyConstraint

Возвращает значение UniqueConstraint , гарантирующее, что значения в родительском столбце являются DataRelation уникальными.

ParentTable

Возвращает родительский элемент DataTable этого DataRelationэлемента.

RelationName

Возвращает или задает имя, используемое для получения DataRelation из объекта DataRelationCollection.

Методы

Имя Описание
CheckStateForProperty()

Этот метод поддерживает инфраструктуру .NET и не предназначен для использования непосредственно из кода.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
OnPropertyChanging(PropertyChangedEventArgs)

Этот элемент поддерживает инфраструктуру .NET и не предназначен для использования непосредственно из кода.

RaisePropertyChanging(String)

Этот элемент поддерживает инфраструктуру .NET и не предназначен для использования непосредственно из кода.

ToString()

Возвращает значение RelationName, если оно существует.

Применяется к

Потокобезопасность

Этот тип является безопасным для многопоточных операций чтения. Необходимо синхронизировать все операции записи.

См. также раздел