ReferentialConstraint 要素 (CSDL)
概念スキーマ定義言語 (CSDL) の ReferentialConstraint 要素は、リレーショナル データベースの参照整合性制約と同様の機能を定義します。 In the same way that a column (or columns) from a database table can reference the primary key of another table, a property (or properties) of an entity type can reference the entity key of another entity type. 参照されるエンティティ型は、制約のプリンシパル End と呼ばれます。 プリンシパル End を参照するエンティティ型は、制約の依存 End と呼ばれます。
1 つのエンティティ型で公開される外部キーが、別のエンティティ型のプロパティを参照する場合、ReferentialConstraint 要素は 2 つのエンティティ型の間の関連付けを定義します。 ReferentialConstraint 要素が、2 つのエンティティ型の関係についての情報を提供するので、マッピング仕様言語 (MSL) の対応する AssociationSetMapping 要素は不要です。 外部キーを公開しない 2 つのエンティティ型の間の関連付けには、対応する AssociationSetMapping 要素が存在する必要があります。これは、関連付け情報をデータ ソースにマップするためです。
ある 1 つのエンティティ型で外部キーが公開されない場合、ReferentialConstraint 要素が定義できるのは、そのエンティティ型と別のエンティティ型との間における主キーと主キーの制約だけです。
A ReferentialConstraint element can have the following child elements (in the order listed):
Documentation (0 個または 1 個の要素)
Principal (1 個の要素)
Dependent (1 個の要素)
Annotation 要素 (0 個以上の要素)
適用可能な属性
ReferentialConstraint 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。 However, custom attributes may not belong to any XML namespace that is reserved for CSDL. カスタム属性の完全修飾名は一意である必要があります。
例
次の例は、ReferentialConstraint 要素を PublishedBy アソシエーションの定義の一部として使用する方法を示します。
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
</End>
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
<ReferentialConstraint>
<Principal Role="Publisher">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="Book">
<PropertyRef Name="PublisherId" />
</Dependent>
</ReferentialConstraint>
</Association>
参照
概念
エンティティ フレームワークの概要
CSDL 仕様
Schema 要素 (CSDL)
Association 要素 (CSDL)
その他のリソース
CSDL、SSDL、および MSL 仕様
ADO.NET Entity Data Model Tools
referential integrity constraint (Entity Data Model)