конечная точка ассоциации
Конец связи определяет тип сущности в одной части ассоциации и количество экземпляров типа сущностей, которые могут существовать в этом конце ассоциации. Элементы ассоциации определяются при определении ассоциации; ассоциация должна иметь два элемента. Свойства навигации позволяют переходить с одного конца связи к другому.
Определение конечной точки ассоциации содержит следующую информацию.
Один из типов сущности, участвующий в ассоциации. (обязательно)
Примечание.
Для одной ассоциации тип сущности, указанный для каждой конечной точки ассоциации, может быть одним и тем же. Так создается самоассоциация.
Кратность конца ассоциации, указывающая количество экземпляров типа сущности, которые могут находиться в одном конце связи. Кратность конечной точки ассоциации может иметь значение «один» (1), «нуль или один» (0..1) или «много» (*).
Имя для элемента ассоциации. (Необязательно)
Сведения об операциях, которые выполняются на конечной точке ассоциации, например каскадная операция удаления. (Необязательно)
Пример
На приведенной ниже схеме показана концептуальная модель с двумя ассоциациями: PublishedBy
и WrittenBy
. Конечные точки ассоциации для ассоциации PublishedBy
- это типы сущности Book
и Publisher
. Кратность конечной точки Publisher
- «один» (1), а кратность конечной точки Book
- «много» (*), что означает, что издатель публикует много книг, а одна книга публикуется одним издателем.
В ADO.NET Entity Framework используется язык, зависящий от домена (DSL), называемый языком определения концептуальной схемы (CSDL) для определения концептуальных моделей. Ниже язык определения концептуальной схемы определяет ассоциацию PublishedBy
, которая ранее приводилась в схеме. Обратите внимание, что тип, имя и кратность каждой конечной точки ассоциации указаны атрибутами XML (атрибуты Type
, Role
и Multiplicity
соответственно). Дополнительные сведения об операциях, выполненных на конечной точке, указываются в элементе XML (элемент OnDelete
). В данном случае, если издатель удаляется, удаляются и все связанные книги.
<Association Name="PublishedBy">
<End Type="BooksModel.Book" Role="Book" Multiplicity="*" />
<End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" >
<OnDelete Action="Cascade" />
</End>
</Association>