Association 要素 (CSDL)
アソシエーションは、エンティティ データ モデル (EDM) のエンティティ間の論理リレーションシップを指定します。アソシエーションは、概念スキーマ定義言語 (CSDL) を使用して、概念スキーマで宣言および定義されます。
次の構文は、同じ型の 2 つのエンティティ間におけるアソシエーションの宣言と定義を示しています。アソシエーションの両方の End のエンティティは従業員です。一方の従業員はマネージャで、もう一方はマネージャの部下にあたる従業員です。
この構文には、定義対象の Adventure Works Human Resources Model の Namespace と Alias を持つ Schema 要素が含まれています。また、Association で使用される Employee の宣言も含まれています。
<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="AdventureWorksHRModel"
Alias="Self" xmlns="https://schemas.microsoft.com/ado/2006/04/edm">
<EntityType Name="Employee">
<Key>
<PropertyRef Name="EmployeeID" />
</Key>
<Property Name="EmployeeID" Type="Int32" Nullable="false" />
<Property Name="NationalIDNumber" Type="String" Nullable="false" />
<Property Name="LoginID" Type="String" Nullable="false" />
<Property Name="Title" Type="String" Nullable="false" />
<Property Name="BirthDate" Type="DateTime" Nullable="false" />
<Property Name="Gender" Type="String" Nullable="false" />
<Property Name="HireDate" Type="DateTime" Nullable="false" />
<Property Name="SalariedFlag" Type="Boolean" Nullable="false" />
<Property Name="ModifiedDate" Type="DateTime" Nullable="false" />
<!- Some employee properties ommitted for brevity -->
<NavigationProperty Name="Employee1"
Relationship="Adventureworks.FK_Employee_Employee_ManagerID"
FromRole="Employee" ToRole="Employee1" />
</EntityType>
<Association Name="Employee_Employee_ManagerID">
<End Role="Employee" Type="Self.Employee" Multiplicity="0..1" />
<End Role="Employee1" Type="Self.Employee"
Multiplicity="*" />
</Association>
Association 要素は、Association の End プロパティの Type の割り当てによって示される Employee エンティティ間の論理リレーションシップを指定します。アソシエーションの両方の End の型は Employee です。一方の従業員は、Association の End プロパティの Role 属性によって Employee1 として指定されます。この例の End 属性の Multiplicity 属性は、マネージャである Employee が Employee1 インスタンスの数を管理できることを示しています。Employee 定義の NavigationProperty は、マネージャである従業員とマネージャ以外の従業員間のリンクを示します。
アソシエーションの型の割り当てでは、完全修飾名を使用する必要があります。この例では、型の割り当てに、AdventureWorksHRModel 名前空間の SelfAlias が使用されています。
参照
概念
AssociationSet 要素 (EntityContainer CSDL)
Association 要素 (SSDL)
AssociationSetMapping 要素 (MSL)
AdventureWorks Complete Model (EDM)