ConstraintCollection 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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만들고 속성 Unique 이 DataColumn 로 설정된 true
를 에 DataColumnCollection추가합니다. 두 번째 예제에서는 , 두 개의 DataTable 개체, 4개의 열 및 를 DataRelation만듭니다DataSet. 그런 다음 제약 조건 수가 인쇄되어 개체의 DataRelationCollection에 가 추가될 때 DataRelation 및 UniqueConstraint 가 생성됨을 DataSet 보여 ForeignKeyConstraint 줍니다.
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 에 대한 및 ForeignKeyConstraint 개체를 모두 UniqueConstraint 포함할 DataTable수 있습니다. 개체는 UniqueConstraint 데이터 무결성을 유지하기 위해 특정 열의 데이터가 항상 고유한지 확인합니다. 는 ForeignKeyConstraint 의 데이터가 DataTable 업데이트되거나 삭제될 때 관련 테이블에서 발생하는 일을 결정합니다. 예를 들어 행이 삭제 ForeignKeyConstraint 되면 는 관련 행도 삭제되는지(계단식) 또는 다른 작업 과정인지를 결정합니다.
참고
에 두 테이블 간의 관계를 만드는 을 DataSet추가 DataRelation 하면 와 UniqueConstraint 가 ForeignKeyConstraint 자동으로 만들어집니다. 는 UniqueConstraint 부모 DataTable의 기본 키 열에 적용되고 제약 조건은 해당 테이블의 ConstraintCollection에 추가됩니다. 는 ForeignKeyConstraint 기본 키 열과 외래 키 열에 적용되고 제약 조건은 자식 테이블의 ConstraintCollection에 추가됩니다.
는 ConstraintCollection , Clear및 와 같은 Add표준 컬렉션 메서드를 Remove사용합니다. 또한 메서드를 Contains 사용하여 컬렉션에 특정 제약 조건이 있는지 확인할 수 있습니다.
UniqueConstraint 속성이 로 설정된 true
가 DataColumnUnique 개체의 DataColumnCollection에 추가되면 가 DataTable 만들어집니다.
ForeignKeyConstraint 개체의 DataRelationCollection에 가 DataRelation 추가되면 가 DataSet 만들어집니다.
속성
Count |
컬렉션에 있는 요소의 총수를 가져옵니다. (다음에서 상속됨 InternalDataCollectionBase) |
IsReadOnly |
InternalDataCollectionBase이 읽기 전용인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 InternalDataCollectionBase) |
IsSynchronized |
InternalDataCollectionBase이 동기화되었는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 InternalDataCollectionBase) |
Item[Int32] |
컬렉션에서 지정된 인덱스의 Constraint을 가져옵니다. |
Item[String] |
컬렉션에서 지정된 이름을 가진 Constraint을 가져옵니다. |
List |
컬렉션의 항목을 목록으로 가져옵니다. |
List |
컬렉션의 항목을 목록으로 가져옵니다. (다음에서 상속됨 InternalDataCollectionBase) |
SyncRoot |
컬렉션을 동기화하는 데 사용할 수 있는 개체를 가져옵니다. (다음에서 상속됨 InternalDataCollectionBase) |
메서드
이벤트
CollectionChanged |
ConstraintCollection 개체가 추가되거나 제거되어 Constraint이 변경될 때마다 발생합니다. |
확장 메서드
Cast<TResult>(IEnumerable) |
IEnumerable의 요소를 지정된 형식으로 캐스팅합니다. |
OfType<TResult>(IEnumerable) |
지정된 형식에 따라 IEnumerable의 요소를 필터링합니다. |
AsParallel(IEnumerable) |
쿼리를 병렬화할 수 있도록 합니다. |
AsQueryable(IEnumerable) |
IEnumerable을 IQueryable로 변환합니다. |
적용 대상
스레드 보안
이 형식은 다중 스레드 읽기 작업에 안전합니다. 모든 쓰기 작업을 동기화해야 합니다.
추가 정보
.NET