Aracılığıyla paylaş


ForeignKeyConstraint Sınıf

Tanım

Bir değer veya satır silindiğinde veya güncelleştirildiğinde birincil anahtar/yabancı anahtar ilişkisindeki bir sütun kümesinde uygulanan eylem kısıtlamalarını temsil eder.

public ref class ForeignKeyConstraint : System::Data::Constraint
public class ForeignKeyConstraint : System.Data.Constraint
[System.Serializable]
public class ForeignKeyConstraint : System.Data.Constraint
type ForeignKeyConstraint = class
    inherit Constraint
[<System.Serializable>]
type ForeignKeyConstraint = class
    inherit Constraint
Public Class ForeignKeyConstraint
Inherits Constraint
Devralma
ForeignKeyConstraint
Öznitelikler

Örnekler

Aşağıdaki örnek bir ForeignKeyConstraintoluşturur, özelliklerinden bazılarını ayarlar ve bir DataTable nesnenin ConstraintCollectionöğesine ekler.

' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private suppliersProducts As SuppliersProducts

Private Sub CreateConstraint()
    ' Declare parent column and child column variables.
    Dim parentColumn As DataColumn
    Dim childColumn As DataColumn
    Dim fkeyConstraint As ForeignKeyConstraint

    ' Set parent and child column variables.
    parentColumn = suppliersProducts.Tables("Suppliers").Columns("SupplierID")
    childColumn = suppliersProducts.Tables("Products").Columns("SupplierID")
    fkeyConstraint = New ForeignKeyConstraint( _
        "SupplierFKConstraint", parentColumn, childColumn)

    ' Set null values when a value is deleted.
    fkeyConstraint.DeleteRule = Rule.SetNull
    fkeyConstraint.UpdateRule = Rule.Cascade
    fkeyConstraint.AcceptRejectRule = AcceptRejectRule.Cascade

    ' Add the constraint, and set EnforceConstraints to true.
    suppliersProducts.Tables("Products").Constraints.Add(fkeyConstraint)
    suppliersProducts.EnforceConstraints = True
End Sub

Açıklamalar

Sütundaki ForeignKeyConstraint (veya sütunlardaki) bir değer silindiğinde veya güncelleştirildiğinde gerçekleştirilen eylemi kısıtlar. Böyle bir kısıtlamanın birincil anahtar sütunlarıyla kullanılması amaçlanmıştır. İki tablo arasındaki bir üst/alt ilişkide, üst tablodan bir değeri silmek alt satırları aşağıdaki yollardan biriyle etkileyebilir.

  • Alt satırlar da silinebilir (basamaklı eylem).

  • Alt sütundaki (veya sütunlardaki) değerler null değerlere ayarlanabilir.

  • Alt sütundaki (veya sütunlardaki) değerler varsayılan değerlere ayarlanabilir.

  • Özel durum oluşturulabilir.

ForeignKeyConstraintnesneleri, özelliği aracılığıyla Constraints erişilen içinde DataTableyer ConstraintCollection alır.

Özelliği olarak ayarlanmadığı EnforceConstraintstruesürece kısıtlamalar uygulanmaz.

AcceptRejectRule bir nesnenin AcceptChanges yöntemi her çağrıldığında zorlanırDataTable.

Oluşturucular

ForeignKeyConstraint(DataColumn, DataColumn)

Belirtilen üst ve alt DataColumn nesnelerle sınıfının yeni bir örneğini ForeignKeyConstraint başlatır.

ForeignKeyConstraint(DataColumn[], DataColumn[])

Belirtilen üst ve alt DataColumn nesne dizileriyle sınıfının yeni bir örneğini ForeignKeyConstraint başlatır.

ForeignKeyConstraint(String, DataColumn, DataColumn)

Belirtilen ad, üst ve alt DataColumn nesnelerle sınıfının yeni bir örneğini ForeignKeyConstraint başlatır.

ForeignKeyConstraint(String, DataColumn[], DataColumn[])

Belirtilen adla sınıfının yeni bir örneğini ForeignKeyConstraint ve üst ve alt DataColumn nesne dizilerini başlatır.

ForeignKeyConstraint(String, String, String, String[], String[], AcceptRejectRule, Rule, Rule)

Bu oluşturucu Visual Studio ortamında tasarım zamanı desteği için sağlanır. ForeignKeyConstraint bu oluşturucu kullanılarak oluşturulan nesneler daha sonra aracılığıyla AddRange(Constraint[])koleksiyona eklenmelidir. Belirtilen adlara sahip tablolar ve sütunlar, yöntemin çağrıldığı anda mevcut olmalıdır veya bu oluşturucu çağrılmadan önce çağrıldıysa BeginInit() , belirtilen adlara sahip tablo ve sütunların EndInit() çağrılan zamanda mevcut olması gerekir.

ForeignKeyConstraint(String, String, String[], String[], AcceptRejectRule, Rule, Rule)

Bu oluşturucu Visual Studio ortamında tasarım zamanı desteği için sağlanır. ForeignKeyConstraint bu oluşturucu kullanılarak oluşturulan nesneler daha sonra aracılığıyla AddRange(Constraint[])koleksiyona eklenmelidir. Belirtilen adlara sahip tablolar ve sütunlar, yöntemin çağrıldığı anda mevcut olmalıdır veya bu oluşturucu çağrılmadan önce çağrıldıysa BeginInit() , belirtilen adlara sahip tablo ve sütunların EndInit() çağrılan zamanda mevcut olması gerekir.

Özellikler

_DataSet

Bu kısıtlamanın DataSet ait olduğu değeri alır.

(Devralındığı yer: Constraint)
AcceptRejectRule

Çağrıldığında AcceptChanges() bu kısıtlama boyunca gerçekleşmesi gereken eylemi gösterir.

Columns

Bu kısıtlamanın alt sütunlarını alır.

ConstraintName

içindeki bir kısıtlamanın ConstraintCollectionadı.

(Devralındığı yer: Constraint)
DeleteRule

Bir satır silindiğinde bu kısıtlamada gerçekleşen eylemi alır veya ayarlar.

ExtendedProperties

Kullanıcı tanımlı kısıtlama özellikleri koleksiyonunu alır.

(Devralındığı yer: Constraint)
RelatedColumns

Bu kısıtlamanın üst sütunları.

RelatedTable

Bu kısıtlamanın üst tablosunu alır.

Table

Bu kısıtlamanın alt tablosunu alır.

UpdateRule

Bir satır güncelleştirildiğinde bu kısıtlamada gerçekleşen eylemi alır veya ayarlar.

Yöntemler

CheckStateForProperty()

Bu kısıtlamanın DataSet ait olduğu değeri alır.

(Devralındığı yer: Constraint)
Equals(Object)

Geçerli ForeignKeyConstraint değerin belirtilen nesneyle aynı olup olmadığını belirten bir değer alır.

GetHashCode()

Nesnenin bu örneğinin ForeignKeyConstraint karma kodunu alır.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
SetDataSet(DataSet)

Kısıtlamanın DataSetöğesini ayarlar.

(Devralındığı yer: Constraint)
ToString()

ConstraintNameVarsa dize olarak öğesini alır.

(Devralındığı yer: Constraint)

Şunlara uygulanır

İş Parçacığı Güvenliği

Bu tür, çok iş parçacıklı okuma işlemleri için güvenlidir. Mevcut yazma işlemlerini eşitlemeniz gerekir.

Ayrıca bkz.