Элемент End (язык SSDL)
Элемент End в языке SSDL определяет таблицу и число строк на одной конечной точке ограничения внешнего ключа в основной базе данных. Элемент End может быть дочерним элементом элемента Association или элемента AssociationSet. В каждом из этих случаев дочерние элементы и применимые атрибуты будут различными.
Элемент End как дочерний по отношению к элементу Association
Элемент End (как дочерний элемент элемента Association) задает таблицу и число строк для элемента ограничения внешнего ключа с соответствующими атрибутами Type и Multiplicity. Элементы ограничения внешнего ключа определяются как часть ассоциации SSDL. Ассоциация SSDL должна содержать ровно два элемента.
Элемент End может иметь следующие дочерние элементы (в порядке перечисления).
Documentation (ноль или один элемент)
OnDelete (ноль или один элемент)
Элементы Annotation (ноль или более элементов)
Применимые атрибуты
В следующей таблице описываются атрибуты, которые можно применить к элементу End в случае, если он является дочерним по отношению к элементу Association.
Имя атрибута | Необходимо | Значение |
---|---|---|
Type |
Да |
Полное имя набора сущностей языка SSDL на конце ограничения внешнего ключа. |
Role |
Нет |
Значение атрибута Role в элементе Principal или Dependent соответствующего элемента ReferentialConstraint (если есть). |
Multiplicity |
Да |
Значение 1, 0..1 или * — в зависимости от числа строк, которые могут находится на конце ограничения внешнего ключа.
|
Примечание |
---|
К элементу End может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать. |
Пример
В следующем примере показан элемент Association, определяющий ограничение внешнего ключа FK_CustomerOrders. Значения Multiplicity, заданные для каждого элемента End ассоциации, указывают на то, что многие строки в таблице Orders могут быть связаны со строкой в таблице Customers, но только одна строка таблицы Customers может быть связана со строкой таблицы Orders. Кроме того, элемент OnDelete указывает на то, что все строки в таблице Orders, которая ссылается на отдельную строку в таблице Customers, будут удалены, если удаляется строка в таблице Customers.
<Association Name="FK_CustomerOrders">
<End Role="Customers"
Type="ExampleModel.Store.Customers" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="Orders"
Type="ExampleModel.Store.Orders" Multiplicity="*" />
<ReferentialConstraint>
<Principal Role="Customers">
<PropertyRef Name="CustomerId" />
</Principal>
<Dependent Role="Orders">
<PropertyRef Name="CustomerId" />
</Dependent>
</ReferentialConstraint>
</Association>
Элемент End как дочерний по отношению к элементу AssociationSet
Элемент End (как дочерний элемент элемента AssociationSet) задает таблицу на одном конце ограничения внешнего ключа в основной базе данных.
Элемент End может иметь следующие дочерние элементы (в порядке перечисления).
Documentation (ноль или один)
Элементы annotation (ноль или более)
Применимые атрибуты
В следующей таблице описываются атрибуты, которые могут быть применены к элементу End в том случае, если он является дочерним для элемента AssociationSet.
Имя атрибута | Необходимо | Значение |
---|---|---|
EntitySet |
Да |
Имя набора сущностей языка SSDL на конце ограничения внешнего ключа. |
Role |
Нет |
Значение одного атрибута Role, заданного для элемента End соответствующего элемента Association. |
Примечание |
---|
К элементу End может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML).Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL.Полные имена любых двух настраиваемых атрибутов не могут совпадать. |
Пример
В следующем примере рассматривается элемент EntityContainer с элементом AssociationSet, содержащим два элемента End.
<EntityContainer Name="ExampleModelStoreContainer">
<EntitySet Name="Customers"
EntityType="ExampleModel.Store.Customers"
Schema="dbo" />
<EntitySet Name="Orders"
EntityType="ExampleModel.Store.Orders"
Schema="dbo" />
<AssociationSet Name="FK_CustomerOrders"
Association="ExampleModel.Store.FK_CustomerOrders">
<End Role="Customers" EntitySet="Customers" />
<End Role="Orders" EntitySet="Orders" />
</AssociationSet>
</EntityContainer>
См. также
Основные понятия
Общие сведения о платформе Entity Framework
Спецификация языка SSDL
Другие ресурсы
Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools