тип ассоциации
Тип связи (также называемый ассоциацией) является основным стандартным блоком для описания связей в модели данных сущности (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>