Compartir a través de


restricción de integridad referencial

Una restricción de integridad referencial de Entity Data Model (EDM) es similar a una restricción de integridad referencial de una base de datos relacional. Del mismo modo que las columnas de una tabla de base de datos pueden hacer referencia a la clave principal de otra tabla, las propiedades de un tipo de entidad pueden hacer referencia a la clave de entidad de otro tipo de entidad. El tipo de entidad al que se hace referencia se denomina extremo principal de la restricción. El tipo de entidad que hace referencia al extremo principal se denomina extremo dependiente de la restricción.

Una restricción de integridad referencial se define como parte de una asociación entre dos tipos de entidad. La definición para una restricción de integridad referencial especifica la siguiente información:

  • El extremo principal de la restricción. Es un tipo de entidad a cuya clave de entidad hace referencia el extremo dependiente.

  • La clave de entidad del extremo principal.

  • El extremo dependiente de la restricción. Es un tipo de entidad que tiene una o varias propiedades que hacen referencia a la clave de entidad del extremo principal.

  • La propiedad o propiedades que hacen la referencia del extremo dependiente.

El propósito de las restricciones de integridad referencial de EDM es garantizar la existencia de asociaciones válidas. Para más información, consulte la propiedad de clave externa.

Ejemplo

El diagrama siguiente muestra un modelo conceptual con dos asociaciones: WrittenBy y PublishedBy. El tipo de entidad Book tiene una propiedad, PublisherId, que hace referencia a la clave de entidad del tipo de entidad Publisher cuando se define una restricción de integridad referencial en la asociación PublishedBy.

RefConstraintModel

ADO.NET Entity Framework usa un lenguaje específico de dominio (DSL) denominado lenguaje de definición de esquemas conceptuales (CSDL) para definir los modelos conceptuales. El código CSDL siguiente define una restricción de integridad referencial en la asociación PublishedBy mostrada en el modelo conceptual anteriormente citado.

<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>

Consulte también