ConstraintCollection Класс

Определение

Представляет коллекцию ограничений для DataTable.Represents a collection of constraints for a 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 .The first example creates a DataTable, and adds a DataColumn (with its Unique property set to true) to the DataColumnCollection. Во втором примере создается DataSet , два DataTable объекта, четыре столбца и DataRelation .The second example creates a DataSet, two DataTable objects, four columns, and a DataRelation. После этого будет выведено число ограничений, чтобы отобразить, что создает ForeignKeyConstraint и, UniqueConstraint когда DataRelation добавляется в DataSet объект DataRelationCollection .The count of constraints is then printed to show that a ForeignKeyConstraint and a UniqueConstraint are created when a DataRelation is added to the DataSet object's 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 свойство.The ConstraintCollection is accessed through the DataTable.Constraints property.

ConstraintCollectionМожет содержать UniqueConstraint ForeignKeyConstraint объекты и для DataTable .The ConstraintCollection can contain both UniqueConstraint and ForeignKeyConstraint objects for the DataTable. UniqueConstraintОбъект гарантирует, что данные в определенном столбце всегда уникальны, чтобы сохранить целостность данных.A UniqueConstraint object makes sure that data in a specific column is always unique to preserve the data integrity. ForeignKeyConstraintОпределяет, что будет происходить в связанных таблицах при DataTable обновлении или удалении данных в.The ForeignKeyConstraint determines what will occur in related tables when data in the DataTable is either updated or deleted. Например, если строка удаляется, то определяет, будут ForeignKeyConstraint ли связанные строки также удалены (каскадным) или каким-либо другим действием.For example, if a row is deleted, the ForeignKeyConstraint will determine whether the related rows are also deleted (a cascade), or some other course of action.

Примечание

При добавлении DataRelation , который создает связь между двумя таблицами DataSet , как, так и, ForeignKeyConstraint UniqueConstraint создаются автоматически.When you add a DataRelation that creates a relationship between two tables to a DataSet, both a ForeignKeyConstraint and a UniqueConstraint are created automatically. UniqueConstraintПрименяется к первичному ключевому столбцу в родительском элементе DataTable , а ограничение добавляется в эту таблицу ConstraintCollection .The UniqueConstraint is applied to the primary key column in the parent DataTable, and the constraint is added to that table's ConstraintCollection. ForeignKeyConstraintАтрибут применяется к первичному ключевому столбцу и столбцу внешнего ключа, а ограничение добавляется к дочерней таблице ConstraintCollection .The ForeignKeyConstraint is applied to the primary key column and the foreign key column, and the constraint is added to the child table's ConstraintCollection.

ConstraintCollectionИспользует стандартные методы сбора, такие как Add , Clear и Remove .The ConstraintCollection uses standard collection methods such as Add, Clear, and Remove. Кроме того, Contains метод можно использовать для поиска наличия определенного ограничения в коллекции.In addition, the Contains method can be used to look for the existence of a particular constraint in the collection.

Создается, UniqueConstraint когда DataColumn Unique свойство со значением свойства true добавляется в DataTable объект DataColumnCollection .A UniqueConstraint is created when a DataColumn with its Unique property set to true is added to a DataTable object's DataColumnCollection.

Создается, ForeignKeyConstraint когда DataRelation добавляется в DataSet объект DataRelationCollection .A ForeignKeyConstraint is created when a DataRelation is added to a DataSet object's DataRelationCollection.

Свойства

Count

Возвращает общее число элементов в коллекции.Gets the total number of elements in a collection.

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

Получает значение, указывающее, доступен ли объект InternalDataCollectionBase только для чтения.Gets a value that indicates whether the InternalDataCollectionBase is read-only.

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

Возвращает значение, которое определяет, является ли коллекция InternalDataCollectionBase синхронизированной.Gets a value that indicates whether the InternalDataCollectionBase is synchronized.

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

Получает объект Constraint из коллекции по указанному индексу.Gets the Constraint from the collection at the specified index.

Item[String]

Получает объект Constraint из коллекции с указанным именем.Gets the Constraint from the collection with the specified name.

List

Возвращает элементы коллекции в виде списка.Gets the items of the collection as a list.

List

Возвращает элементы коллекции в виде списка.Gets the items of the collection as a list.

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

Возвращает объект, который можно использовать для синхронизации коллекции.Gets an object that can be used to synchronize the collection.

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

Методы

Add(Constraint)

Добавляет указанный объект Constraint в коллекцию.Adds the specified Constraint object to the collection.

Add(String, DataColumn, Boolean)

Создает новое ограничение UniqueConstraint с указанным именем, объект DataColumn, и значение, показывающее, является ли столбец первичным ключом, и добавляет его в коллекцию.Constructs a new UniqueConstraint with the specified name, DataColumn, and value that indicates whether the column is a primary key, and adds it to the collection.

Add(String, DataColumn, DataColumn)

Создает новое ограничение ForeignKeyConstraint с указанным именем, родительский и дочерний столбцы и добавляет ограничение к коллекции.Constructs a new ForeignKeyConstraint with the specified name, parent column, and child column, and adds the constraint to the collection.

Add(String, DataColumn[], Boolean)

Создает новое ограничение UniqueConstraint с указанным именем, массивом объектов DataColumn и значением, показывающим, является ли столбец первичным ключом, и добавляет его в коллекцию.Constructs a new UniqueConstraint with the specified name, array of DataColumn objects, and value that indicates whether the column is a primary key, and adds it to the collection.

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

Создает новое ограничение ForeignKeyConstraint с указанным массивом родительских и дочерних столбцов и добавляет это ограничение к коллекции.Constructs a new ForeignKeyConstraint, with the specified arrays of parent columns and child columns, and adds the constraint to the collection.

AddRange(Constraint[])

Копирует элементы указанного массива ConstraintCollection в конец коллекции.Copies the elements of the specified ConstraintCollection array to the end of the collection.

CanRemove(Constraint)

Указывает, может ли быть удалено ограничение Constraint.Indicates whether a Constraint can be removed.

Clear()

Очищает коллекцию от объектов Constraint.Clears the collection of any Constraint objects.

Contains(String)

Указывает, существует ли в коллекции объект Constraint, указанный по имени.Indicates whether the Constraint object specified by name exists in the collection.

CopyTo(Array, Int32)

Копирует все элементы текущего объекта InternalDataCollectionBase в одномерный массив Array, начиная с указанного индекса InternalDataCollectionBase.Copies all the elements of the current InternalDataCollectionBase to a one-dimensional Array, starting at the specified InternalDataCollectionBase index.

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

Копирует объекты коллекции в одномерный экземпляр класса Array, начиная с указанного индекса.Copies the collection objects to a one-dimensional Array instance starting at the specified index.

Equals(Object)

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

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

Возвращает объект IEnumerator для коллекции.Gets an IEnumerator for the collection.

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

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

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

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

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

Получает индекс заданного ограничения Constraint.Gets the index of the specified Constraint.

IndexOf(String)

Получает индекс ограничения Constraint, заданного по имени.Gets the index of the Constraint specified by name.

MemberwiseClone()

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

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

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

Remove(Constraint)

Удаляет указанный объект Constraint из коллекции.Removes the specified Constraint from the collection.

Remove(String)

Удаляет из коллекции ограничение Constraint, указанное по имени.Removes the Constraint object specified by name from the collection.

RemoveAt(Int32)

Удаляет объект Constraint с указанным индексом из коллекции.Removes the Constraint object at the specified index from the collection.

ToString()

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

События

CollectionChanged

Происходит всякий раз после изменения коллекции ConstraintCollection в результате добавления или удаления объектов Constraint.Occurs whenever the ConstraintCollection is changed because of Constraint objects being added or removed.

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

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.Enables parallelization of a query.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.Converts an IEnumerable to an IQueryable.

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

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

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

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