ReferentialConstraint 項目 (SSDL)
存放結構定義語言 (SSDL) 中的 ReferentialConstraint 項目表示基礎資料庫中之外部索引鍵條件約束 (也稱為參考完整性條件約束)。條件約束的主體端和相依端是分別透過 Principal 和 Dependent 子項目指定的。參與主體端和相依端之資料行是以 PropertyRef 項目來參考的。
ReferentialConstraint 項目是 Association 項目的選擇性子項目。如果沒有使用 ReferentialConstraint 項目來對應 Association 項目中所指定之外部索引鍵條件約束,則必須使用 AssociationSetMapping 項目來執行此動作。
ReferentialConstraint 項目可以擁有下列子項目:
Documentation (零或一個)
Principal (只有一個)
Dependent (只有一個)
Annotation 項目 (零或多個)
適用屬性
可以將任何數量的附註屬性 (自訂 XML 屬性) 套用至 ReferentialConstraint 項目。不過,自訂屬性不可屬於任何 XML 命名空間,這是保留供 SSDL 使用。任兩個自訂屬性的完整名稱不能相同。
範例
下列範例顯示 Association 項目,它會使用 ReferentialConstraint 項目來指定參與 FK_CustomerOrders 外部索引鍵條件約束之資料行。
<Association Name="FK_CustomerOrders">
<End Role="Customers"
Type="ExampleModel.Store.Customers" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="Orders"
Type="ExampleModel.Store.Orders" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Customers">
<PropertyRef Name="CustomerId" />
</Principal>
<Dependent Role="Orders">
<PropertyRef Name="CustomerId" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK_CustomerOrders">
<End Role="Customers" Type="ExampleModel.Store.Customers" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="Orders" Type="ExampleModel.Store.Orders" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Customers">
<PropertyRef Name="CustomerId" />
</Principal>
<Dependent Role="Orders">
<PropertyRef Name="CustomerId" />
</Dependent>
</ReferentialConstraint>
</Association>
<Association Name="FK_CustomerOrders">
<End Role="Customers" Type="ExampleModel.Store.Customers" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="Orders" Type="ExampleModel.Store.Orders" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Customers">
<PropertyRef Name="CustomerId" />
</Principal>
<Dependent Role="Orders">
<PropertyRef Name="CustomerId" />
</Dependent>
</ReferentialConstraint>
</Association>