ReferentialConstraint 要素 (SSDL)
ストア スキーマ定義言語 (SSDL) の ReferentialConstraint 要素は、基になるデータベースにおける外部キー制約 (参照整合性制約とも呼ばれる) を表します。制約のプリンシパル End と依存 End は、それぞれ Principal 子要素と Dependent 子要素によって指定されます。プリンシパル End と依存 End に参加する列は、PropertyRef 要素で参照します。
ReferentialConstraint 要素は Association 要素の子要素で、省略可能です。Association 要素に指定されている外部キー制約のマッピングに ReferentialConstraint 要素が使用されない場合は、AssociationSetMapping 要素を使用してこれを行う必要があります。
ReferentialConstraint 要素には、次の子要素を含めることができます。
Documentation (0 個または 1 個)
Principal (1 個)
Dependent (1 個)
Annotation 要素 (0 個以上)
適用可能な属性
ReferentialConstraint 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は SSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。
例
次の例は、ReferentialConstraint 要素を使用して FK_CustomerOrders 外部キー制約に参加する列を指定する 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>
<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>