Share via


Association 要素 (CSDL)

Association 要素は、2 つのエンティティ型の間のリレーションシップを定義します。アソシエーションでは、リレーションシップに関連するエンティティ型、およびリレーションシップの各 End におけるエンティティ型の数 (多重度と呼ばれる) を指定する必要があります。アソシエーション End の多重度には、1 (1)、ゼロか 1 (0..1)、または多数 (*) の値を指定することができます。この情報は、2 つの子 End 要素で指定されます。

アソシエーションの一方の End にあるエンティティ型のインスタンスには、それらがエンティティ型で公開されている場合、ナビゲーション プロパティまたは外部キーからアクセスできます。詳細については、「NavigationProperty 要素」、「ReferentialConstraint 要素」、および「リレーションシップの定義と管理」を参照してください。

アプリケーション内で、アソシエーションのインスタンスは、エンティティ型のインスタンスの間の特定のアソシエーションを表します。アソシエーション インスタンスは、アソシエーション セットに論理的にグループ化されます。詳細については、「AssociationSet 要素」を参照してください。

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

適用可能な属性

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

属性名

必須

Name

はい

アソシエーションの名前。

注意

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

次の例は、Customer エンティティ型と Order エンティティ型で外部キーが公開されていない場合に CustomerOrders アソシエーションを定義する Association 要素を示しています。アソシエーションの各 End の Multiplicity 値は、多数の Orders を 1 個の Customer に関連付けることができることを示していますが、Order に関連付けることができる Customer は、1 個だけです。さらに、OnDelete 要素は、Customer が削除されると、特定の Customer に関連し、かつ ObjectContext に読み込まれた Orders もすべて共に削除されることを示しています。

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" >
        <OnDelete Action="Cascade" />
  </End>
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
</Association>

次の例は、Customer エンティティ型と Order エンティティ型で外部キーが公開されている場合に CustomerOrders アソシエーションを定義する Association 要素を示しています。外部キーが公開されているので、エンティティ間のリレーションシップは ReferentialConstraint 要素で管理されます。このアソシエーションをデータ ソースにマップするために、対応する AssociationSetMapping 要素は必要ありません。

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" >
        <OnDelete Action="Cascade" />
  </End>
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*" />
  <ReferentialConstraint>
       <Principal Role="Customer">
           <PropertyRef Name="Id" />
       </Principal>
       <Dependent Role="Order">
            <PropertyRef Name="CustomerId" />
        </Dependent>
  </ReferentialConstraint>
</Association>

関連項目

概念

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

CSDL 仕様

Schema 要素 (CSDL)

アソシエーション型

その他の技術情報

CSDL、SSDL、および MSL 仕様

ADO.NET Entity Data Model ツール