ナビゲーション プロパティ (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)