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


Элемент End (язык CSDL)

Элемент End в языке CSDL может быть дочерним по отношению к элементу Association или AssociationSet. Во каждом случае роль элемента End и применимые атрибуты отличаются.

Элемент End как дочерний по отношению к элементу Association

Являясь дочерним элементом элемента Association, элемент End определяет тип сущности на одном элементе ассоциации и число экземпляров типа сущности, которые могут существовать на данном элементе ассоциации. Элементы ассоциации определяются при определении ассоциации; ассоциация должна иметь два элемента. К экземплярам типов сущности на одном элементе ассоциации можно осуществлять доступ с помощью свойств навигации или внешних ключей при условии, что они были предоставлены в типах сущности. Дополнительные сведения см. в разделах Элемент NavigationProperty, Элемент ReferentialConstraint и Определение отношений и управление отношениями (платформа Entity Framework).

Элемент End может иметь следующие дочерние элементы (в порядке перечисления).

Применимые атрибуты

В следующей таблице описываются атрибуты, которые можно применить к элементу End в случае, если он является дочерним по отношению к элементу Association.

Имя атрибута Необходимо Значение

Type

Да

Имя типа сущности на одном элементе ассоциации.

Role

Нет

Имя для элемента ассоциации. Если имя не было предоставлено, будет использовано имя типа сущности на элементе ассоциации.

Multiplicity

Да

1, 0..1 или * в зависимости от числа экземпляров типа сущности, которые могут присутствовать на элементе ассоциации.

  • 1 показывает, что на элементе ассоциации существует ровно один экземпляр типа сущности.

  • 0..1 показывает, что на элементе ассоциации существует ноль или один экземпляр типа сущности.

  • * показывает, что на элементе ассоциации существует ноль, один или несколько экземпляров типа сущности.

Bb896235.note(ru-ru,VS.100).gifПримечание
К элементу End может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере рассматривается элемент Association, определяющий ассоциацию CustomerOrders. Значения Multiplicity для каждого элемента End ассоциации указывают, что с одним элементом Customer может быть связано несколько элементов Orders, но с каждым элементом Order может быть связан только один элемент Customer. Кроме того, элемент OnDelete указывает, что все элементы Orders, связанные с определенным элементом Customer, которые были загружены в ObjectContext, будут удалены при удалении элемента Customer.

<Association Name="CustomerOrders">
  <End Type="ExampleModel.Customer" Role="Customer" Multiplicity="1" />
  <End Type="ExampleModel.Order" Role="Order" Multiplicity="*">
        <OnDelete Action="Cascade" />
  </End>
</Association>

Элемент End как дочерний по отношению к элементу AssociationSet

Элемент End задает один элемент набора ассоциаций. Элемент AssociationSet должен содержать два элемента End. Сведения, содержащиеся в элементе End используются при сопоставлении набора ассоциаций с источником данных. Дополнительные сведения см. в разделах Элемент AssociationSetMapping (язык MSL) и Элемент EndProperty (язык MSL).

Элемент End может иметь следующие дочерние элементы (в порядке перечисления).

Bb896235.note(ru-ru,VS.100).gifПримечание
Элементы Annotation должны следовать после всех остальных дочерних элементов.Элементы annotation допускаются только в концептуальных моделях для приложений, которые предназначены для версии .NET Framework 4 или более поздней.Пространством имен XML для таких моделей является https://schemas.microsoft.com/ado/2008/09/edm.

Применимые атрибуты

В следующей таблице описываются атрибуты, которые можно применить к элементу End в случае, если он является дочерним по отношению к элементу AssociationSet.

Имя атрибута Необходимо Значение

EntitySet

Да

Имя элемента EntitySet, определяющего один элемент родительского элемента AssociationSet. Элемент EntitySet должен быть определен в том же контейнере сущностей, что и родительский элемент AssociationSet.

Role

Нет

Имя элемента набора ассоциаций. Если атрибут Role не используется, то в качестве имени элемента набора ассоциаций будет использовано имя набора сущностей.

Bb896235.note(ru-ru,VS.100).gifПримечание
К элементу End может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере рассматривается элемент EntityContainer с двумя элементами AssociationSet, каждый из которых имеет два элемента End.

<EntityContainer Name="BooksContainer" >
  <EntitySet Name="Books" EntityType="BooksModel.Book" />
  <EntitySet Name="Publishers" EntityType="BooksModel.Publisher" />
  <EntitySet Name="Authors" EntityType="BooksModel.Author" />
  <AssociationSet Name="PublishedBy" Association="BooksModel.PublishedBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Publisher" EntitySet="Publishers" />
  </AssociationSet>
  <AssociationSet Name="WrittenBy" Association="BooksModel.WrittenBy">
    <End Role="Book" EntitySet="Books" />
    <End Role="Author" EntitySet="Authors" />
  </AssociationSet>
</EntityContainer>

См. также

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

Общие сведения о платформе Entity Framework
Спецификация языка CSDL
Элемент Schema (CSDL)
Элемент EntityContainer (язык CSDL)

Другие ресурсы

Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools
association end (Entity Data Model)
association set (Entity Data Model)
association set end (Entity Data Model)