Элемент ReferentialConstraint (CSDL)

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

Если внешний ключ, представленный в одном типе сущности, ссылается на свойство другого типа сущности, то элемент ReferentialConstraint будет определять ассоциацию между двумя типами сущностей. Поскольку элемент ReferentialConstraint предоставляет сведения о связи между двумя типами сущностей, присутствие элемента AssociationSetMapping на языке MSL не обязательно. Ассоциация между двумя типами сущностей без представленных внешних ключей должна иметь соответствующий элемент AssociationSetMapping для сопоставления сведений об ассоциации с источником данных.

Если внешний ключ не был представлен для типа сущности, то элемент ReferentialConstraint сможет определить только ограничение типа «первичный ключ к первичному ключу» между двумя типами сущностей.

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

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

Элемент ReferentialConstraint может иметь любое количество атрибутов annotation (настраиваемых атрибутов XML). Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL. Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере показано использование элемента ReferentialConstraint в пределах определения ассоциации PublishedBy.

<Association Name="PublishedBy">
  <End Type="BooksModel.Book" Role="Book" Multiplicity="*" >
  </End>
  <End Type="BooksModel.Publisher" Role="Publisher" Multiplicity="1" />
  <ReferentialConstraint>
    <Principal Role="Publisher">
      <PropertyRef Name="Id" />
    </Principal>
    <Dependent Role="Book">
      <PropertyRef Name="PublisherId" />
    </Dependent>
  </ReferentialConstraint>
</Association>

См. также

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

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

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

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