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):

適用可能な属性

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)