DataRelation Класс

Определение

Представляет отношение "родительский-дочерний объект" между двумя объектами DataTable.Represents a parent/child relationship between two DataTable objects.

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

Примеры

В следующем примере создается новый DataRelation объект, который добавляется DataRelationCollection в коллекцию DataSet.The following example creates a new DataRelation and adds it to the DataRelationCollection of a 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 объекты.A DataRelation is used to relate two DataTable objects to each other through DataColumn objects. Например, в связи Customer/Orders таблица Customers является родительской, а таблица Orders — дочерней для связи.For example, in a Customer/Orders relationship, the Customers table is the parent and the Orders table is the child of the relationship. Это похоже на связь «первичный-внешний ключ».This is similar to a primary key/foreign key relationship. Дополнительные сведения см. в разделе Навигация по связямданных.For more information, see Navigating DataRelations.

Связи создаются между совпадающими столбцами в родительской и дочерней таблицах.Relationships are created between matching columns in the parent and child tables. То есть DataType значение обоих столбцов должно быть одинаковым.That is, the DataType value for both columns must be identical.

Связи могут также каскадировать различные изменения от родителя DataRow к ее дочерним строкам.Relationships can also cascade various changes from the parent DataRow to its child rows. Чтобы управлять изменением значений в дочерних строках, добавьте ForeignKeyConstraint ConstraintCollection DataTable в объект.To control how values are changed in child rows, add a ForeignKeyConstraint to the ConstraintCollection of the DataTable object. Определяет ConstraintCollection , какое действие следует предпринять при удалении или обновлении значения в родительской таблице.The ConstraintCollection determines what action to take when a value in a parent table is deleted or updated.

DataRelation При создании этой связи сначала проверяется, что связь может быть установлена.When a DataRelation is created, it first verifies that the relationship can be established. После добавления в объект DataRelationCollectionсвязь сохраняется, что позволяет запретить любые изменения, которые сделают ее недействительной.After it is added to the DataRelationCollection, the relationship is maintained by disallowing any changes that would invalidate it. Между периодом, когда DataRelation создается и добавляется DataRelationCollectionв, можно вносить дополнительные изменения в родительские или дочерние строки.Between the period when a DataRelation is created and added to the DataRelationCollection, it is possible for additional changes to be made to the parent or child rows. Исключение создается, если это вызывает связь, которая больше не является допустимой.An exception is generated if this causes a relationship that is no longer valid.

Примечание

Повреждение данных может произойти, если между двумя таблицами определено двунаправленное отношение.Data corruption can occur if a bi-directional relation is defined between two tables. Двунаправленное отношение состоит из двух DataRelation объектов, использующих одни и те же столбцы, при этом переключаются роли типа "родители-потомки".A bi-directional relation consists of two DataRelation objects that use the same columns, with the parent-child roles switched. При DataRelation сохранении объектов исключение не возникает, однако может произойти повреждение данных.No exception is raised when the DataRelation objects are saved; however, data corruption can occur.

DataRelationDataRelationCollectionобъекты содержатся в, доступ к которым можно получить с Relations помощью свойства класса DataSet, а также ChildRelations свойств DataTableи ParentRelations .DataRelation objects are contained in a DataRelationCollection, which you can access through the Relations property of the DataSet, and the ChildRelations and ParentRelations properties of the DataTable.

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

DataRelation(String, DataColumn, DataColumn)

Инициализирует новый экземпляр класса DataRelation с использованием указанного имени DataRelation и родительского и дочернего объектов DataColumn.Initializes a new instance of the DataRelation class using the specified DataRelation name, and parent and child DataColumn objects.

DataRelation(String, DataColumn, DataColumn, Boolean)

Инициализирует новый экземпляр класса DataRelation с использованием указанного имени, родительского и дочернего объектов DataColumn и значения, указывающего, нужно ли создавать ограничения.Initializes a new instance of the DataRelation class using the specified name, parent and child DataColumn objects, and a value that indicates whether to create constraints.

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

Инициализирует новый экземпляр класса DataRelation с использованием указанного имени DataRelation и соответствующих массивов родительских и дочерних объектов DataColumn.Initializes a new instance of the DataRelation class using the specified DataRelation name and matched arrays of parent and child DataColumn objects.

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

Инициализирует новый экземпляр класса DataRelation с использованием указанного имени, родительского и дочернего объектов DataColumn и значения, указывающего, нужно ли создавать ограничения.Initializes a new instance of the DataRelation class using the specified name, matched arrays of parent and child DataColumn objects, and value that indicates whether to create constraints.

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

Этот конструктор предназначен для поддержки режима разработки в среде Visual Studio.This constructor is provided for design time support in the Visual Studio environment.

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

Этот конструктор предназначен для поддержки режима разработки в среде Visual Studio.This constructor is provided for design time support in the Visual Studio environment.

Свойства

ChildColumns

Возвращает дочерние объекты DataColumn этого отношения.Gets the child DataColumn objects of this relation.

ChildKeyConstraint

Возвращает ForeignKeyConstraint для отношения.Gets the ForeignKeyConstraint for the relation.

ChildTable

Возвращает дочернюю таблицу этого отношения.Gets the child table of this relation.

DataSet

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

ExtendedProperties

Возвращает коллекцию, в которой хранятся настраиваемые свойства.Gets the collection that stores customized properties.

Nested

Возвращает или задает значение, которое указывает, являются ли объекты DataRelation вложенными.Gets or sets a value that indicates whether DataRelation objects are nested.

ParentColumns

Возвращает массив объектов DataColumn, являющихся родительскими столбцами объекта DataRelation.Gets an array of DataColumn objects that are the parent columns of this DataRelation.

ParentKeyConstraint

Возвращает UniqueConstraint, которое обеспечивает уникальность значений в родительском столбце объекта DataRelation.Gets the UniqueConstraint that guarantees that values in the parent column of a DataRelation are unique.

ParentTable

Возвращает родительский объект DataTable этого объекта DataRelation.Gets the parent DataTable of this DataRelation.

RelationName

Возвращает или задает имя, используемое для извлечения DataRelation из DataRelationCollection.Gets or sets the name used to retrieve a DataRelation from the DataRelationCollection.

Методы

CheckStateForProperty()

Этот метод поддерживает инфраструктуру .NET Framework и не предназначен для использования непосредственно из программного кода.This method supports the .NET Framework infrastructure and is not intended to be used directly from your code.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.Determines whether the specified object is equal to the current object.

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

Служит в качестве хэш-функции по умолчанию.Serves as the default hash function.

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

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Данный член предназначен для поддержки платформы .NET Framework и не должен вызываться напрямую из кода приложения.This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

RaisePropertyChanging(String)

Данный член предназначен для поддержки платформы .NET Framework и не должен вызываться напрямую из кода приложения.This member supports the .NET Framework infrastructure and is not intended to be used directly from your code.

ToString()

Возвращает RelationName, если он существует.Gets the RelationName, if one exists.

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

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

Этот тип является надежным для многопоточных операций чтения.This type is safe for multithreaded read operations. Необходимо синхронизировать любые операции записи.You must synchronize any write operations.

Дополнительно