外部キーのプロパティ
Entity Data Model (EDM) における "外部キーのプロパティ" は、別のエンティティ型のエンティティ キーを含むエンティティ型のプリミティブ型のプロパティ (または一連のプリミティブ型のプロパティ) です。
外部キーのプロパティは、リレーショナル データベースの外部キー列に似ています。 リレーショナル データベースで外部キー列を使用してテーブル内の行の間のリレーションシップを作成するのと同様に、概念モデルでは外部キーのプロパティを使用してエンティティ型の間のアソシエーションを設定します。 エンティティ型の 1 つに外部キーのプロパティがある場合に、2 つのエンティティ型の間のアソシエーションを定義するには、参照整合性制約を使用します。
例
下のダイアグラムは、Book
、Publisher
、および Author
という 3 つのエンティティ型の概念モデルを示しています。 Book
エンティティ型には、PublisherId
というプロパティがあります。Publisher
アソシエーションに参照整合性制約を定義するときに、このプロパティは PublishedBy
エンティティ型のエンティティ キーを参照します。
ADO.NET Entity Framework では、概念スキーマ定義言語 (CSDL) と呼ばれるドメイン固有言語 (DSL) を使用して概念モデルを定義します。 次の CSDL は、外部キーのプロパティ PublisherId
を使用して、上の概念モデルに示された 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>