ConstraintCollection Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje kolekci omezení pro objekt .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
- Dědičnost
- Atributy
Příklady
První příklad vytvoří a DataTablepřidá (s jeho Unique vlastností nastavenou truena ) do objektu DataColumnCollectionDataColumn . Druhý příklad vytvoří DataSet, dva DataTable objekty, čtyři sloupce a a DataRelation. Počet omezení se pak vytiskne, aby bylo možné zobrazit, že ForeignKeyConstraint při přidání objektu DataSetDataRelationCollectionse vytvoří DataRelation a a.UniqueConstraint
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
Poznámky
Tato ConstraintCollection vlastnost je přístupná prostřednictvím DataTable.Constraints vlastnosti.
Může ConstraintCollection obsahovat oba UniqueConstraint objekty a ForeignKeyConstraint objekty pro objekty DataTable. Objekt UniqueConstraint zajišťuje, aby data v určitém sloupci byla vždy jedinečná, aby se zachovala integrita dat. Určuje ForeignKeyConstraint , co se stane v souvisejících tabulkách při aktualizaci nebo odstranění dat v tabulkách DataTable . Pokud je například řádek odstraněn, určí se, ForeignKeyConstraint jestli se související řádky odstraní (kaskádová) nebo nějaký jiný postup.
Poznámka:
Když přidáte relaci DataRelation , která vytvoří relaci mezi dvěma tabulkami do , DataSeta to jak a a ForeignKeyConstraint a UniqueConstraint jsou vytvořeny automaticky. Použije se UniqueConstraint na sloupec primárního klíče v nadřazené DataTableobjektu a omezení se přidá do tabulky ConstraintCollection. Použije se ForeignKeyConstraint na sloupec primárního klíče a sloupec cizího klíče a omezení se přidá do podřízené ConstraintCollectiontabulky .
Používá ConstraintCollection standardní metody shromažďování, jako Addje , Cleara Remove. Kromě toho lze metodu Contains použít k vyhledání existence konkrétního omezení v kolekci.
A UniqueConstraint se vytvoří, když DataColumn se Unique jeho vlastnost nastavena na trueDataTable objekt .DataColumnCollection
A ForeignKeyConstraint je vytvořen při DataRelation přidání do objektu DataSetDataRelationCollection.
Vlastnosti
| Name | Description |
|---|---|
| Count |
Získá celkový počet prvků v kolekci. (Zděděno od InternalDataCollectionBase) |
| IsReadOnly |
Získá hodnotu, která označuje, zda InternalDataCollectionBase je jen pro čtení. (Zděděno od InternalDataCollectionBase) |
| IsSynchronized |
Získá hodnotu, která označuje, zda InternalDataCollectionBase je synchronizován. (Zděděno od InternalDataCollectionBase) |
| Item[Int32] |
Constraint Získá z kolekce v zadaném indexu. |
| Item[String] |
Constraint Získá z kolekce se zadaným názvem. |
| List |
Získá položky kolekce jako seznam. |
| List |
Získá položky kolekce jako seznam. (Zděděno od InternalDataCollectionBase) |
| SyncRoot |
Získá objekt, který lze použít k synchronizaci kolekce. (Zděděno od InternalDataCollectionBase) |
Metody
| Name | Description |
|---|---|
| Add(Constraint) |
Přidá zadaný Constraint objekt do kolekce. |
| Add(String, DataColumn, Boolean) |
Vytvoří nový UniqueConstraint se zadaným názvem a hodnotou, která určuje, DataColumnjestli je sloupec primárním klíčem, a přidá ho do kolekce. |
| Add(String, DataColumn, DataColumn) |
Vytvoří nový ForeignKeyConstraint se zadaným názvem, nadřazeným sloupcem a podřízeným sloupcem a přidá omezení do kolekce. |
| Add(String, DataColumn[], Boolean) |
Vytvoří nový UniqueConstraint se zadaným názvem, polem DataColumn objektů a hodnotou, která označuje, jestli je sloupec primárním klíčem, a přidá ho do kolekce. |
| Add(String, DataColumn[], DataColumn[]) |
Vytvoří novou ForeignKeyConstraint, se zadanými poli nadřazených sloupců a podřízených sloupců a přidá omezení do kolekce. |
| AddRange(Constraint[]) |
Zkopíruje prvky zadaného ConstraintCollection pole na konec kolekce. |
| CanRemove(Constraint) |
Určuje, zda Constraint lze odebrat. |
| Clear() |
Vymaže kolekci všech Constraint objektů. |
| Contains(String) |
Určuje, zda Constraint objekt určený názvem existuje v kolekci. |
| CopyTo(Array, Int32) |
Zkopíruje všechny prvky aktuálního do InternalDataCollectionBase jednorozměrného Array, počínaje zadaným InternalDataCollectionBase indexem. (Zděděno od InternalDataCollectionBase) |
| CopyTo(Constraint[], Int32) |
Zkopíruje objekty kolekce do jednorozměrné Array instance počínaje zadaným indexem. |
| Equals(Object) |
Určuje, zda je zadaný objekt roven aktuálnímu objektu. (Zděděno od Object) |
| GetEnumerator() |
IEnumerator Získá pro kolekci. (Zděděno od InternalDataCollectionBase) |
| GetHashCode() |
Slouží jako výchozí funkce hash. (Zděděno od Object) |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IndexOf(Constraint) |
Získá index zadaného Constraint. |
| IndexOf(String) |
Získá index zadaného Constraint názvem. |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| OnCollectionChanged(CollectionChangeEventArgs) |
CollectionChanged Vyvolá událost. |
| Remove(Constraint) |
Odebere zadanou Constraint položku z kolekce. |
| Remove(String) |
Odebere Constraint objekt určený názvem z kolekce. |
| RemoveAt(Int32) |
Odebere Constraint objekt v zadaném indexu z kolekce. |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Událost
| Name | Description |
|---|---|
| CollectionChanged |
Nastane vždy, když dojde ke ConstraintCollection změně z důvodu Constraint přidání nebo odebrání objektů. |
Metody rozšíření
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Umožňuje paralelizaci dotazu. |
| AsQueryable(IEnumerable) |
Převede IEnumerable na IQueryable. |
| Cast<TResult>(IEnumerable) |
Přetypuje prvky IEnumerable na zadaný typ. |
| OfType<TResult>(IEnumerable) |
Filtruje prvky IEnumerable na základě zadaného typu. |
Platí pro
Bezpečný přístup z více vláken
Tento typ je bezpečný pro operace čtení s více vlákny. Je nutné synchronizovat všechny operace zápisu.