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


ограничение ссылочной целостности

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

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

  • Основной конец ограничения. (Тип сущности, ключ сущности которого имеет ссылку на зависимый конец.)

  • Ключ сущности основного конца.

  • Зависимый конец ограничения. (Тип сущности, который имеет свойство или свойства, ссылающиеся на ключ сущности основного конца.)

  • Ссылка на свойство или свойства зависимого конца.

Целью ограничения ссылочной целостности в модели EDM является обеспечение постоянного существования допустимых ассоциаций. Дополнительные сведения см. в свойстве внешнего ключа.

Пример

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

RefConstraintModel

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

См. также