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
- Наследование
- Атрибуты
Примеры
В первом примере создается DataTableобъект и добавляется (со свойством UniqueDataColumn , равным true
) в DataColumnCollection. Во втором примере создается DataSetобъект , два DataTable объекта, четыре столбца и DataRelation. Затем выводится число ограничений, чтобы показать, что ForeignKeyConstraintUniqueConstraint и создаются при 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 связь между двумя таблицами к DataSet, ForeignKeyConstraint и UniqueConstraint , и создаются автоматически. UniqueConstraint Применяется к столбцу первичного ключа в родительском DataTableэлементе , а ограничение добавляется к этой таблице ConstraintCollection. ForeignKeyConstraint Применяется к столбцам первичного ключа и столбцу внешнего ключа, а ограничение добавляется к дочерней ConstraintCollectionтаблице .
Использует стандартные ConstraintCollection методы сбора, такие как Add, Clearи Remove. Кроме того, Contains метод можно использовать для поиска существования определенного ограничения в коллекции.
Создается UniqueConstraint при добавлении объекта со свойством DataColumnUnique , для свойства , заданного true
значением DataTableDataColumnCollection.
Создается ForeignKeyConstraint при добавлении DataRelation к объекту DataSetDataRelationCollection.
Свойства
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. |
Методы расширения
Cast<TResult>(IEnumerable) |
Приводит элементы объекта IEnumerable к заданному типу. |
OfType<TResult>(IEnumerable) |
Выполняет фильтрацию элементов объекта IEnumerable по заданному типу. |
AsParallel(IEnumerable) |
Позволяет осуществлять параллельный запрос. |
AsQueryable(IEnumerable) |
Преобразовывает коллекцию IEnumerable в объект IQueryable. |
Применяется к
Потокобезопасность
Этот тип безопасен для многопоточных операций чтения. Необходимо синхронизировать все операции записи.