次の方法で共有


NavigationProperty 要素 (CSDL)

NavigationProperty 要素は、ナビゲーション プロパティを定義します。このプロパティは、アソシエーションの他方の End を参照できるようにします。Property 要素で定義されるプロパティとは異なり、ナビゲーション プロパティはデータの形と特性を定義しません。ナビゲーション プロパティは、アソシエーション内で 2 つのエンティティ型間を移動するための手段を提供します。

ナビゲーション プロパティは、アソシエーション End の両方のエンティティ型で省略可能です。1 つのアソシエーション End のエンティティ型にナビゲーション プロパティを定義した場合に、そのアソシエーションの他方の End でもエンティティ型にナビゲーション プロパティを定義する必要はありません。

ナビゲーション プロパティによって返されるデータ型は、リモートのアソシエーション End の多重度により決まります。たとえば、ナビゲーション プロパティ OrdersNavProp が Customer エンティティ型に存在し、Customer と Order の間の一対多のアソシエーションで移動するとします。ナビゲーション プロパティのリモートのアソシエーション End の多重度が多数 (*) であるため、そのデータ型はコレクション (Order の) になります。同様に、Order エンティティ型にナビゲーション プロパティ CustomerNavProp が存在する場合、リモート End の多重度が (1) であるため、データ型は Customer になります。

NavigationProperty 要素には、次の子要素をここに示す順序で含めることができます。

適用可能な属性

NavigationProperty 要素に適用できる属性を次の表に示します。

属性名

必須

Name

はい

ナビゲーション プロパティの名前。

Relationship

はい

モデルのスコープ内にあるアソシエーションの名前。

ToRole

有効

ナビゲーションが終了する側のアソシエーション End。ToRole 属性の値は、いずれかのアソシエーション End で定義されているいずれかの Role 属性の値 (AssociationEnd 要素で定義) と同じである必要があります。

FromRole

有効

ナビゲーションが始まる側のアソシエーション End。FromRole 属性の値は、いずれかのアソシエーション End で定義されているいずれかの Role 属性の値 (AssociationEnd 要素で定義) と同じである必要があります。

注意

NavigationProperty 要素には、任意の数の annotation 属性 (カスタム XML 属性) を適用できます。ただし、カスタム属性は CSDL 用に予約されたどの XML 名前空間にも属さない場合があります。カスタム属性の完全修飾名は一意である必要があります。

次の例は、2 つのナビゲーション プロパティ (PublishedBy と WrittenBy) を持つエンティティ型 (Book) を定義します。

<EntityType Name="Book">
  <Key>
    <PropertyRef Name="ISBN" />
  </Key>
  <Property Type="String" Name="ISBN" Nullable="false" />
  <Property Type="String" Name="Title" Nullable="false" />
  <Property Type="Decimal" Name="Revision" Nullable="false" Precision="29" Scale="29" />
  <NavigationProperty Name="Publisher" Relationship="BooksModel.PublishedBy"
                      FromRole="Book" ToRole="Publisher" />
  <NavigationProperty Name="Authors" Relationship="BooksModel.WrittenBy"
                      FromRole="Book" ToRole="Author" />
</EntityType>

関連項目

概念

エンティティ フレームワークの概要

CSDL 仕様

Schema 要素 (CSDL)

ナビゲーション プロパティ

その他の技術情報

CSDL、SSDL、および MSL 仕様

ADO.NET Entity Data Model ツール