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


свойство внешнего ключа

Свойство внешнего ключа в модели данных сущности (EDM) — это примитивное свойство типа (или набор свойств примитивного типа) для типасущности, содержащего ключ сущности другого типа сущности.

Свойство внешнего ключа схоже со столбцом внешнего ключа в реляционной базе данных. Таким же образом, как столбцы внешнего ключа используются в реляционной базе данных для создания связей между строками в таблицах, свойства внешнего ключа в концептуальной модели используются для установления связей между типами сущностей. Ограничение целостности ссылки используется для определения связи между двумя типами сущностей, если один из типов имеет свойство внешнего ключа.

Пример

На приведенной ниже схеме показана концептуальная модель с тремя типами сущностей: Book, Publisher и Author. Тип сущности Book имеет свойство PublisherId, которое ссылается на ключ сущности типа сущности Publisher при определении ограничения ссылочной целостности ассоциации PublishedBy.

RefConstraintModel

В ADO.NET Entity Framework используется язык, зависящий от домена (DSL), называемый языком определения концептуальной схемы (CSDL) для определения концептуальных моделей. Следующий язык CSDL использует свойство внешнего ключа PublisherId для определения ограничения ссылочной целостности в ассоциации 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>

См. также