ReferentialConstraint (Elemento) (CSDL)

Un elemento ReferentialConstraint en el lenguaje de definición de esquemas conceptuales (CSDL) define una funcionalidad similar a una restricción de integridad referencial en 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.

Si una clave externa que se expone en un tipo de entidad hace referencia a una propiedad de otro tipo de entidad, el elemento ReferentialConstraint define una asociación entre los dos tipos de entidad. Dado que el elemento ReferentialConstraint proporciona información sobre cómo se relacionan dos tipos de entidad, no es necesario especificar el elemento AssociationSetMapping correspondiente en el lenguaje de especificación de asignaciones (MSL). Una asociación entre dos tipos de entidad que no tienen claves externas expuestas debe tener un elemento AssociationSetMapping correspondiente para poder asignar la información de asociación al origen de datos.

Si una clave externa no se expone en un tipo de entidad, el elemento ReferentialConstraint solo puede definir una restricción de clave principal a clave principal entre dicho tipo y otro tipo de entidad.

Un elemento ReferentialConstraint puede tener los elementos secundarios siguientes (en el orden mostrado):

Atributos aplicables

El elemento ReferentialConstraint puede tener cualquier número de atributos de anotación (atributos XML personalizados). Sin embargo, es posible que los atributos personalizados no pertenezcan a ningún espacio de nombres XML reservado para CSDL. Dos atributos personalizados cualesquiera no pueden tener nombres completos idénticos.

Ejemplo

En el ejemplo siguiente se muestra un elemento ReferentialConstraint que se usa como parte de la definición de la asociación 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>

Vea también

Conceptos

Información general de Entity Framework
Especificación CSDL
Schema (Elemento) (CSDL)
Association (Elemento) (CSDL)

Otros recursos

Especificaciones CSDL, SSDL y MSL
ADO.NET Entity Data Model Tools
referential integrity constraint (Entity Data Model)