Поделиться через


Атрибут Role (элемент Association, язык SSDL)

В модели Entity Data Model (модель EDM) атрибут Role элемента End задает сущности, связываемые с помощью ассоциации и их функций. В примере из этого раздела ассоциация служит для подключения сущностей Employee на основе связи «руководитель — сотрудник». Оба элемента ассоциации имеют один и тот же тип, указанный назначением Type="AdventureWorks.Store.Employee".

Атрибут Role позволяет отличить подчиненного сотрудника от менеджера. Атрибут Multiplicity указывает, что сотрудник Employee, являющийся менеджером, может участвовать в нескольких экземплярах ассоциации такого типа (или ни в одном), но сотрудник Employee1 может иметь только одного менеджера и участвовать только в одной ассоциации этого типа. Это указание кратности относится к связи, определяемой внешним ключом в таблице Employee, который может содержать только один идентификатор ManagerID.

  <Association Name="FK_Employee_Employee_ManagerID">
    <End Role="Employee" Type="Adventureworks.Store.Employee" Multiplicity="0..1" />
    <End Role="Employee1" Type="Adventureworks.Store.Employee" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employee">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Employee1">
        <PropertyRef Name="ManagerID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>

См. также

Основные понятия

Элемент Association (язык SSDL)
Атрибут Role (элемент Association, язык SSDL)
Полная модель AdventureWorks (модель EDM)