ConstraintCollection Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta una raccolta di vincoli per un oggetto 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
- Ereditarietà
- Attributi
Esempio
Il primo esempio crea un DataTableoggetto e aggiunge un oggetto DataColumn (con la relativa Unique proprietà impostata su true) all'oggetto DataColumnCollection. Il secondo esempio crea un DataSetoggetto , due DataTable oggetti, quattro colonne e un oggetto DataRelation. Il conteggio dei vincoli viene quindi stampato per indicare che un ForeignKeyConstraint oggetto e viene UniqueConstraint creato quando un DataRelation oggetto viene aggiunto all'oggetto 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
Commenti
L'oggetto ConstraintCollection è accessibile tramite la DataTable.Constraints proprietà .
ConstraintCollection può contenere sia UniqueConstraint oggetti che ForeignKeyConstraint per .DataTable Un UniqueConstraint oggetto garantisce che i dati in una colonna specifica siano sempre univoci per mantenere l'integrità dei dati. Determina ForeignKeyConstraint cosa si verificherà nelle tabelle correlate quando i dati nell'oggetto DataTable vengono aggiornati o eliminati. Ad esempio, se una riga viene eliminata, determina ForeignKeyConstraint se anche le righe correlate vengono eliminate (una catena) o un'altra azione.
Annotazioni
Quando si aggiunge un oggetto DataRelation che crea una relazione tra due tabelle a un DataSetoggetto , vengono creati automaticamente sia un ForeignKeyConstraint oggetto che un oggetto UniqueConstraint . L'oggetto UniqueConstraint viene applicato alla colonna chiave primaria nell'oggetto padre DataTablee il vincolo viene aggiunto a tale tabella ConstraintCollection. L'oggetto ForeignKeyConstraint viene applicato alla colonna chiave primaria e alla colonna chiave esterna e il vincolo viene aggiunto all'oggetto della ConstraintCollectiontabella figlio.
ConstraintCollection usa metodi di raccolta standard, ad Addesempio , Cleare Remove. Inoltre, il Contains metodo può essere usato per cercare l'esistenza di un vincolo specifico nella raccolta.
Un UniqueConstraint oggetto viene creato quando un DataColumn oggetto con la relativa Unique proprietà impostata su true viene aggiunto a .DataTableDataColumnCollection
Un ForeignKeyConstraint oggetto viene creato quando un DataRelation oggetto viene aggiunto a un DataSet oggetto DataRelationCollection.
Proprietà
| Nome | Descrizione |
|---|---|
| Count |
Ottiene il numero totale di elementi in una raccolta. (Ereditato da InternalDataCollectionBase) |
| IsReadOnly |
Ottiene un valore che indica se l'oggetto InternalDataCollectionBase è di sola lettura. (Ereditato da InternalDataCollectionBase) |
| IsSynchronized |
Ottiene un valore che indica se l'oggetto InternalDataCollectionBase è sincronizzato. (Ereditato da InternalDataCollectionBase) |
| Item[Int32] |
Ottiene l'oggetto Constraint dalla raccolta in corrispondenza dell'indice specificato. |
| Item[String] |
Ottiene l'oggetto Constraint dalla raccolta con il nome specificato. |
| List |
Ottiene gli elementi della raccolta come elenco. |
| List |
Ottiene gli elementi della raccolta come elenco. (Ereditato da InternalDataCollectionBase) |
| SyncRoot |
Ottiene un oggetto che può essere utilizzato per sincronizzare l'insieme. (Ereditato da InternalDataCollectionBase) |
Metodi
| Nome | Descrizione |
|---|---|
| Add(Constraint) |
Aggiunge l'oggetto specificato Constraint all'insieme. |
| Add(String, DataColumn, Boolean) |
Costruisce un nuovo UniqueConstraint oggetto con il nome specificato, DataColumn, e il valore che indica se la colonna è una chiave primaria e la aggiunge alla raccolta. |
| Add(String, DataColumn, DataColumn) |
Costruisce un nuovo ForeignKeyConstraint oggetto con il nome, la colonna padre e la colonna figlio specificati e aggiunge il vincolo alla raccolta. |
| Add(String, DataColumn[], Boolean) |
Costruisce un nuovo UniqueConstraint oggetto con il nome, la matrice di DataColumn oggetti e il valore specificati che indica se la colonna è una chiave primaria e la aggiunge all'insieme. |
| Add(String, DataColumn[], DataColumn[]) |
Costruisce un nuovo ForeignKeyConstraintoggetto , con le matrici specificate di colonne padre e colonne figlio e aggiunge il vincolo alla raccolta. |
| AddRange(Constraint[]) |
Copia gli elementi della matrice specificata ConstraintCollection alla fine dell'insieme. |
| CanRemove(Constraint) |
Indica se un Constraint oggetto può essere rimosso. |
| Clear() |
Cancella l'insieme di oggetti Constraint . |
| Contains(String) |
Indica se l'oggetto Constraint specificato per nome esiste nell'insieme. |
| CopyTo(Array, Int32) |
Copia tutti gli elementi dell'oggetto corrente InternalDataCollectionBase in un oggetto unidimensionale Array, a partire dall'indice specificato InternalDataCollectionBase . (Ereditato da InternalDataCollectionBase) |
| CopyTo(Constraint[], Int32) |
Copia gli oggetti raccolta in un'istanza unidimensionale Array a partire dall'indice specificato. |
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetEnumerator() |
Ottiene un oggetto IEnumerator per la raccolta. (Ereditato da InternalDataCollectionBase) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetType() |
Ottiene il Type dell'istanza corrente. (Ereditato da Object) |
| IndexOf(Constraint) |
Ottiene l'indice dell'oggetto specificato Constraint. |
| IndexOf(String) |
Ottiene l'indice dell'oggetto specificato in base al Constraint nome. |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| OnCollectionChanged(CollectionChangeEventArgs) |
Genera l'evento CollectionChanged. |
| Remove(Constraint) |
Rimuove l'oggetto specificato Constraint dalla raccolta. |
| Remove(String) |
Rimuove l'oggetto Constraint specificato dal nome dall'insieme. |
| RemoveAt(Int32) |
Rimuove l'oggetto Constraint in corrispondenza dell'indice specificato dall'insieme. |
| ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Eventi
| Nome | Descrizione |
|---|---|
| CollectionChanged |
Si verifica ogni volta che l'oggetto viene modificato a causa dell'aggiunta ConstraintCollection o della rimozione di Constraint oggetti. |
Metodi di estensione
| Nome | Descrizione |
|---|---|
| AsParallel(IEnumerable) |
Abilita la parallelizzazione di una query. |
| AsQueryable(IEnumerable) |
Converte un IEnumerable in un IQueryable. |
| Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un IEnumerable al tipo specificato. |
| OfType<TResult>(IEnumerable) |
Filtra gli elementi di un IEnumerable in base a un tipo specificato. |
Si applica a
Thread safety
Questo tipo è sicuro per le operazioni di lettura multithreading. È necessario sincronizzare tutte le operazioni di scrittura.