Бөлісу құралы:


Тип ассоциации

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

Определение ассоциации содержит следующие сведения:

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

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

    Замечание

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

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

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

Пример

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

Пример модели с тремя типами сущностей

В 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>

См. также