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

エンティティ データ モデル (EDM) のナビゲーション プロパティは、アソシエーションの末尾にあるエンティティを見つけるために使用できるショートカット プロパティです。アソシエーションの詳細については、「アソシエーション (EDM)」を参照してください。

プロパティは、エンティティによって提供される情報を格納します。ナビゲーション プロパティは、アソシエーション間でナビゲート可能なパスを記述します。たとえば、Customer エンティティと Order エンティティの間のアソシエーションでは、Customer エンティティで Orders という名前の NavigationProperty を宣言することで、その特定の Customer インスタンスに関連付けられている Order インスタンスを表現できます。Customer または Order のインスタンスからは、NavigationProperty を使用して、アソシエーションの他方の End にあるインスタンスを見つけることができます。

EDM では、コレクションの機能は、ナビゲーション プロパティとアソシエーションを使用して実装されます。Customer エンティティ上の Orders という名前の NavigationProperty は、コレクションのように動作します。次のスキーマを作成すると、オブジェクト モデルは Orders プロパティの Add メソッドを格納します。Order エンティティの新しいインスタンスは、このメソッドを使用して追加されます。Orders NavigationProperty は、.NET Framework コレクションのようにループ内で列挙できます。

次のスキーマは、Customer エンティティおよび Order エンティティ上でナビゲーション プロパティを作成する方法を示します。

<EntityType Name="Customer" >
    <Key>
      <PropertyRef Name=" CustomerId " />
    </Key>
    <Property Name="CustomerId" Type="Guid" Nullable="false" />
    ...
    <NavigationProperty Name="Orders" Relationship=Namespace.CustomerOrderType"
          FromRole="Customer" ToRole="Orders"/>
</EntityType>

<EntityType Name="Order" Key="OrderId">
    ...
    <NavigationProperty Name="OrderedBy" Relationship="Namespace.Customer_Order"
          FromRole="Order" ToRole="Customer" />
</EntityType>

<Association Name="Customer_Order">
    <End Role="Customer" Type="Namespace.Customers" Multiplicity="1" />
    <End Role="Orders" Type="Namespace.Order" Multiplicity="0..*" />
</Association>
<!— Use a fully qualified name for the association in a Navigation Property.->

この例は、Customer および Order 上のナビゲーション プロパティのスキーマ定義のみを示しています。アソシエーションおよびナビゲーション プロパティのストレージへのマッピングについては、「アソシエーションの実装 (EDM)」を参照してください。

参照

概念

クエリ結果の構造化 (Entity Framework)
アソシエーション (EDM)
スキーマ (EDM)
NavigationProperty 要素 (EntityType CSDL)

その他のリソース

スキーマおよびマッピング スキーマ (Entity Framework)