Бөлісу құралы:


ConstraintCollection Класс

Определение

Представляет коллекцию ограничений для объекта DataTable.

public ref class ConstraintCollection sealed : System::Data::InternalDataCollectionBase
public ref class ConstraintCollection : System::Data::InternalDataCollectionBase
public sealed class ConstraintCollection : System.Data.InternalDataCollectionBase
[System.Serializable]
public class ConstraintCollection : System.Data.InternalDataCollectionBase
type ConstraintCollection = class
    inherit InternalDataCollectionBase
[<System.Serializable>]
type ConstraintCollection = class
    inherit InternalDataCollectionBase
Public NotInheritable Class ConstraintCollection
Inherits InternalDataCollectionBase
Public Class ConstraintCollection
Inherits InternalDataCollectionBase
Наследование
ConstraintCollection
Атрибуты

Примеры

Первый пример создает объект DataTableи добавляет ( DataColumn с его Unique свойством задано trueзначение ) в DataColumnCollection. Второй пример создает DataSetдва объекта, DataTable четыре столбца и a DataRelation. Затем выводится количество ограничений, чтобы показать, что объект ForeignKeyConstraint создается и UniqueConstraint создается при DataRelation добавлении DataSet объекта DataRelationCollection.

private void MakeTableWithUniqueConstraint()
{
    DataTable table = new DataTable("table");
    DataColumn column = new DataColumn("UniqueColumn");
    column.Unique=true;
    table.Columns.Add(column);

    // Print count, name, and type.
    Console.WriteLine("Constraints.Count "
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[0].ConstraintName);
    Console.WriteLine(table.Constraints[0].GetType() );

    // Add a second unique column.
    column = new DataColumn("UniqueColumn2");
    column.Unique=true;
    table.Columns.Add(column);

    // Print info again.
    Console.WriteLine("Constraints.Count "
        + table.Constraints.Count);
    Console.WriteLine(table.Constraints[1].ConstraintName);
    Console.WriteLine(table.Constraints[1].GetType() );
}

private void MakeTableWithForeignConstraint()
{
    // Create a DataSet.
    DataSet dataSet = new DataSet("dataSet");

    // Make two tables.
    DataTable customersTable= new DataTable("Customers");
    DataTable ordersTable = new DataTable("Orders");

    // Create four columns, two for each table.
    DataColumn name = new DataColumn("Name");
    DataColumn id = new DataColumn("ID");
    DataColumn orderId = new DataColumn("OrderID");
    DataColumn cDate = new DataColumn("OrderDate");

    // Add columns to tables.
    customersTable.Columns.Add(name);
    customersTable.Columns.Add(id);
    ordersTable.Columns.Add(orderId);
    ordersTable.Columns.Add(cDate);

    // Add tables to the DataSet.
    dataSet.Tables.Add(customersTable);
    dataSet.Tables.Add(ordersTable);

    // Create a DataRelation for two of the columns.
    DataRelation myRelation = new
        DataRelation("CustomersOrders",id,orderId,true);
    dataSet.Relations.Add(myRelation);

    // Print TableName, Constraints.Count,
    // ConstraintName and Type.
    foreach(DataTable t in dataSet.Tables)
    {
        Console.WriteLine(t.TableName);
        Console.WriteLine("Constraints.Count "
            + t.Constraints.Count);
        Console.WriteLine("ParentRelations.Count "
            + t.ParentRelations.Count);
        Console.WriteLine("ChildRelations.Count "
            + t.ChildRelations.Count);
        foreach(Constraint cstrnt in t.Constraints)
        {
            Console.WriteLine(cstrnt.ConstraintName);
            Console.WriteLine(cstrnt.GetType());
        }
    }
}
Private Sub MakeTableWithUniqueConstraint()

    Dim table As New DataTable("table")
    Dim column As New DataColumn("UniqueColumn")
    column.Unique = True
    table.Columns.Add(column)

    ' Print count, name, and type.
    Console.WriteLine("Constraints.Count " _
       + table.Constraints.Count.ToString())
    Console.WriteLine(table.Constraints(0).ConstraintName)
    Console.WriteLine( _
        table.Constraints(0).GetType().ToString())

    ' Add a second unique column.
    column = New DataColumn("UniqueColumn2")
    column.Unique = True
    table.Columns.Add(column)

    ' Print info again.
    Console.WriteLine("Constraints.Count " _
       + table.Constraints.Count.ToString())
    Console.WriteLine(table.Constraints(1).ConstraintName)
    Console.WriteLine( _
        table.Constraints(1).GetType().ToString())
End Sub

Private Sub MakeTableWithForeignConstraint()

    ' Create a DataSet.
    Dim dataSet As New DataSet("dataSet")

    ' Make two tables.
    Dim customersTable As New DataTable("Customers")
    Dim ordersTable As New DataTable("Orders")

    ' Create four columns, two for each table.
    Dim name As New DataColumn("Name")
    Dim id As New DataColumn("ID")
    Dim orderId As New DataColumn("OrderID")
    Dim orderDate As New DataColumn("OrderDate")
    
    ' Add columns to tables.
    customersTable.Columns.Add(name)
    customersTable.Columns.Add(id)
    ordersTable.Columns.Add(orderId)
    ordersTable.Columns.Add(orderDate)
    
    ' Add tables to the DataSet.
    dataSet.Tables.Add(customersTable)
    dataSet.Tables.Add(ordersTable)

    ' Create a DataRelation for two of the columns.
    Dim myRelation As New DataRelation _
       ("CustomersOrders", id, orderId, True)
    dataSet.Relations.Add(myRelation)

    ' Print TableName, Constraints.Count, 
    ' ConstraintName and Type.
    Dim t As DataTable
    For Each t In  dataSet.Tables
        Console.WriteLine(t.TableName)
        Console.WriteLine("Constraints.Count " _
           + t.Constraints.Count.ToString())
        Console.WriteLine("ParentRelations.Count " _
           + t.ParentRelations.Count.ToString())
        Console.WriteLine("ChildRelations.Count " _
           + t.ChildRelations.Count.ToString())
        Dim cstrnt As Constraint
        For Each cstrnt In  t.Constraints
            Console.WriteLine(cstrnt.ConstraintName)
            Console.WriteLine(cstrnt.GetType())
        Next cstrnt
    Next t
End Sub

Комментарии

Доступ ConstraintCollection осуществляется через DataTable.Constraints свойство.

Может ConstraintCollection содержать как объекты, так UniqueConstraint и ForeignKeyConstraint объекты для DataTableобъекта. Объект UniqueConstraint гарантирует, что данные в определенном столбце всегда уникальны для сохранения целостности данных. Определяет ForeignKeyConstraint , что произойдет в связанных таблицах при обновлении или удалении данных DataTable . Например, если строка удаляется, определите, ForeignKeyConstraint удаляются ли связанные строки (каскад) или другой курс действия.

Замечание

При добавлении DataRelation связи между двумя таблицами к ней DataSetForeignKeyConstraintUniqueConstraint создается автоматически. Он UniqueConstraint применяется к столбцу первичного ключа в родительском DataTableэлементе, а ограничение добавляется в таблицу ConstraintCollection. Применяется ForeignKeyConstraint к столбцу первичного ключа и столбцу внешнего ключа, а ограничение добавляется к дочерней таблице ConstraintCollection.

Использует стандартные ConstraintCollection методы сбора, такие как Add, Clearи Remove. Кроме того, Contains метод можно использовать для поиска существования определенного ограничения в коллекции.

Создается UniqueConstraint при DataColumnUnique добавлении DataTable свойства true в объектDataColumnCollection.

Создается ForeignKeyConstraint при DataRelation добавлении DataSet объекта DataRelationCollection.

Свойства

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

Возвращает общее количество элементов в коллекции.

(Унаследовано от InternalDataCollectionBase)
IsReadOnly

Возвращает значение, указывающее, доступен ли доступ InternalDataCollectionBase только для чтения.

(Унаследовано от InternalDataCollectionBase)
IsSynchronized

Возвращает значение, указывающее, синхронизирован ли он InternalDataCollectionBase .

(Унаследовано от InternalDataCollectionBase)
Item[Int32]

Constraint Получает из коллекции по указанному индексу.

Item[String]

Constraint Возвращает из коллекции с указанным именем.

List

Возвращает элементы коллекции в виде списка.

List

Возвращает элементы коллекции в виде списка.

(Унаследовано от InternalDataCollectionBase)
SyncRoot

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

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

Методы

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

Добавляет указанный Constraint объект в коллекцию.

Add(String, DataColumn, Boolean)

Создает новое UniqueConstraint с указанным именем и значением, DataColumnкоторое указывает, является ли столбец первичным ключом, и добавляет его в коллекцию.

Add(String, DataColumn, DataColumn)

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

Add(String, DataColumn[], Boolean)

Создает новое с UniqueConstraint указанным именем, массивом DataColumn объектов и значением, которое указывает, является ли столбец первичным ключом и добавляет его в коллекцию.

Add(String, DataColumn[], DataColumn[])

Создает новый ForeignKeyConstraintмассив с указанными массивами родительских столбцов и дочерних столбцов и добавляет ограничение в коллекцию.

AddRange(Constraint[])

Копирует элементы указанного ConstraintCollection массива в конец коллекции.

CanRemove(Constraint)

Указывает, можно ли удалить объект Constraint .

Clear()

Очищает коллекцию объектов Constraint .

Contains(String)

Указывает, существует ли объект, указанный Constraint именем в коллекции.

CopyTo(Array, Int32)

Копирует все элементы текущего InternalDataCollectionBase в одномерный Array, начиная с указанного InternalDataCollectionBase индекса.

(Унаследовано от InternalDataCollectionBase)
CopyTo(Constraint[], Int32)

Копирует объекты коллекции в одномерный Array экземпляр, начиная с указанного индекса.

Equals(Object)

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

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

IEnumerator Возвращает коллекцию.

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

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

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

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

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

Возвращает индекс указанного Constraint.

IndexOf(String)

Возвращает индекс указанного Constraint по имени.

MemberwiseClone()

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

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

Вызывает событие CollectionChanged.

Remove(Constraint)

Удаляет указанный Constraint из коллекции.

Remove(String)

Удаляет объект, указанный Constraint именем из коллекции.

RemoveAt(Int32)

Удаляет Constraint объект по указанному индексу из коллекции.

ToString()

Возвращает строку, представляющую текущий объект.

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

События

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

Происходит при каждом ConstraintCollection изменении из-за Constraint добавления или удаления объектов.

Методы расширения

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

Включает параллелизацию запроса.

AsQueryable(IEnumerable)

Преобразует IEnumerable в IQueryable.

Cast<TResult>(IEnumerable)

Приведение элементов IEnumerable к указанному типу.

OfType<TResult>(IEnumerable)

Фильтрует элементы IEnumerable на основе указанного типа.

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

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

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

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