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


тип ассоциации

Тип связи (также называемый ассоциацией) является основным стандартным блоком для описания связей в модели данных сущности (EDM). В концептуальной модели связь представляет связь между двумя типами сущностей (напримерCustomer, иOrder). В приложении экземпляр ассоциации представляет собой специфическую ассоциацию (такую как ассоциация между экземпляром Customer и экземпляром Order). Экземпляры ассоциации логически группируются в наборе ассоциаций.

Определение ассоциации содержит следующую информацию.

  • Уникальное имя. (обязательно)

  • Две связи заканчиваются по одному для каждого типа сущности в связи. (обязательно)

    Примечание.

    Ассоциация не может представлять связь между более чем двумя типами сущностей. Ассоциация может, тем не менее, определять связь с самим собой посредством указания одного и того же типа сущности для каждой из его конечных точек ассоциаций.

  • Ограничение целостности ссылки. (Необязательно)

Каждый конец ассоциации должен указывать кратность конца связи, указывающую количество экземпляров типа сущности, которые могут находиться в одном конце связи. Кратность конечной точки ассоциации может иметь значение «один» (1), «нуль или один» (0..1) или «много» (*). Экземпляры типов сущностей в одной части ассоциации можно получить через свойства навигации или внешние ключи, если они предоставляются в типе сущности. Дополнительные сведения см. в разделе "Модель данных сущности: внешние ключи".

Пример

На приведенной ниже схеме показана концептуальная модель с двумя ассоциациями: PublishedBy и WrittenBy. Конечные точки ассоциации для ассоциации PublishedBy - это типы сущности Book и Publisher. Кратность конечной точки Publisher - «один» (1), а кратность конечной точки Book - «много» (*), что означает, что издатель публикует много книг, а одна книга публикуется одним издателем.

Example model with three entity types

В ADO.NET Entity Framework используется язык, зависящий от домена (DSL), называемый языком определения концептуальной схемы (CSDL) для определения концептуальных моделей. Далее язык CSDL определяет ассоциацию PublishedBy, которая ранее приводилась в схеме.

<Association Name="PublishedBy">
      <End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
      <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
    </Association>

См. также