Share via


Restricciones referenciales (Entity Framework)

En un modelo Entity Data Model (EDM), pueden existir restricciones referenciales entre objetos relacionados, por ejemplo entre los objetos SalesOrderDetail y SalesOrderHeader. Estas restricciones se especifican en el archivo de lenguaje de definición de esquemas conceptuales (CSDL). Para obtener más información, vea Elemento ReferentialConstraint (EntityContainer CSDL).

Nota

Servicios de objeto no aplica todas las restricciones que se pueden expresar en un EDM. Por ejemplo, no aplica las restricciones de cardinalidad en las relaciones y esto puede producir resultados incoherentes al guardar los cambios en los objetos relacionados con el origen de datos. Asegúrese de que el origen de datos aplica todas las restricciones de modelo esenciales.

Cuando se trabaja con objetos que tienen relaciones restringidas, se han de tomar en consideración las cuestiones siguientes:

  • Los objetos dependientes (elementos secundarios) no pueden existir sin una relación definida con el objeto primario.

  • Cuando se crea un nuevo objeto secundario, el objeto primario debe existir en el contexto del objeto o en el origen de datos antes de llamar a SaveChanges. De lo contrario, se producirá una excepción InvalidOperationException.

  • Use el método Add para agregar objetos secundarios al elemento EntityCollection del objeto primario. El acceso a la colección de objetos secundarios se realiza desde una propiedad de navegación que se haya definido para la relación, o desde los métodos GetRelatedCollection o GetRelatedEnd de la propiedad RelationshipManager del objeto primario.

  • Al eliminar el objeto primario también se eliminan todos los objetos secundarios de la relación restringida. Este resultado es el mismo que el de habilitar la propiedad CascadeDelete en la asociación para la relación.

  • Al quitar la relación se elimina el objeto secundario. Esto significa que, al llamar a Remove en EntityCollection, se marcan tanto la relación como el objeto secundario para su eliminación.

  • Una vez creada una relación, sólo se puede cambiar mediante el proceso siguiente:

    1. Quite la relación existente.

    2. Llame a SaveChanges.

    3. Agregue el objeto secundario persistente al elemento EntityCollection del nuevo objeto primario.

Vea también

Otros recursos

Trabajar con objetos (Entity Framework)