次の方法で共有


Association 要素 (CSDL)

アソシエーションは、エンティティ データ モデル (EDM) のエンティティ間の論理リレーションシップを指定します。アソシエーションは、概念スキーマ定義言語 (CSDL) を使用して、概念スキーマで宣言および定義されます。

次の構文は、同じ型の 2 つのエンティティ間におけるアソシエーションの宣言と定義を示しています。アソシエーションの両方の End のエンティティは従業員です。一方の従業員はマネージャで、もう一方はマネージャの部下にあたる従業員です。

この構文には、定義対象の Adventure Works Human Resources ModelNamespaceAlias を持つ 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 要素は、AssociationEnd プロパティの Type の割り当てによって示される Employee エンティティ間の論理リレーションシップを指定します。アソシエーションの両方の End の型は Employee です。一方の従業員は、AssociationEnd プロパティの Role 属性によって Employee1 として指定されます。この例の End 属性の Multiplicity 属性は、マネージャである EmployeeEmployee1 インスタンスの数を管理できることを示しています。Employee 定義の NavigationProperty は、マネージャである従業員とマネージャ以外の従業員間のリンクを示します。

アソシエーションの型の割り当てでは、完全修飾名を使用する必要があります。この例では、型の割り当てに、AdventureWorksHRModel 名前空間の SelfAlias が使用されています。

参照

概念

AssociationSet 要素 (EntityContainer CSDL)
Association 要素 (SSDL)
AssociationSetMapping 要素 (MSL)
AdventureWorks Complete Model (EDM)

その他のリソース

EDM 仕様