restricción de integridad referencial (Entity Data Model)
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 una columna (o columnas) de una tabla de base de datos puede hacer referencia a la clave principal de otra tabla, una propiedad (o propiedades) de un tipo de entidad puede 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 obtener más información, vea propiedad de clave externa (Entity Data Model).
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.
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>