Relaciones: EF Designer
Nota:
Esta página proporciona información sobre cómo establecer relaciones en su modelo utilizando EF designer. Para obtener información general sobre las relaciones en EF y sobre cómo acceder a los datos y manipularlos mediante relaciones, consulte Relaciones y propiedades de navegación.
Las asociaciones definen las relaciones entre los tipos de entidad de un modelo. En este tema se muestra cómo asignar asociaciones con Entity Framework Designer (EF Designer). La siguiente imagen muestra las ventanas principales que se usan cuando se trabaja con EF Designer.
Nota:
Al crear el modelo conceptual, es posible que aparezcan advertencias sobre entidades y asociaciones no asignadas en la lista de errores. Puede omitir estas advertencias, porque después de elegir generar la base de datos a partir del modelo, los errores desaparecen.
Información general sobre asociaciones
Al diseñar el modelo mediante EF Designer, un archivo .edmx representa el modelo. En el archivo .edmx un elemento Association define una relación entre dos tipos de entidad. Una asociación debe especificar los tipos de entidad que están implicados en la relación y el posible número de tipos de entidad en cada extremo de la relación, que se conoce como multiplicidad. La multiplicidad de un extremo de asociación puede tener el valor uno (1), cero o uno (0..1), o muchos (*). Esta información se especifica en dos elementos End secundarios.
En tiempo de ejecución, se puede acceder a las instancias de tipo de entidad situadas en un extremo de la asociación a través de las propiedades de navegación o las claves externas (si decide exponer claves externas en las entidades). Con las claves externas expuestas, la relación entre las entidades se administra con un elemento ReferentialConstraint (un elemento secundario del elemento Association). Se recomienda exponer siempre claves externas para las relaciones en las entidades.
Nota:
En varios (*:*) no se pueden agregar claves externas a las entidades. En una relación *:*, la información de asociación se administra con un objeto independiente.
Para obtener información sobre los elementos CSDL (ReferentialConstraint, Association, etc.), consulte la especificación CSDL.
Crear y eliminar asociaciones
Al crear una asociación con EF Designer, se actualiza el contenido del modelo del archivo .edmx. Después de crear una asociación, debe crear las asignaciones para dicha asociación (que se describe más adelante en este tema).
Nota:
Esta sección asume que ya ha agregado a su modelo las entidades entre las que desea crear una asociación.
Para crear una asociación
Haga clic con el botón secundario en un área vacía de la superficie de diseño, seleccione Agregar nuevo y, a continuación, seleccione Asociación....
Rellene la configuración de la asociación en el cuadro de diálogo Agregar asociación.
Nota:
Si no desea agregar propiedades de navegación o de clave externa a las entidades de los extremos de la asociación, desactive las casillas **Propiedad de navegación** y **Agregar propiedades de clave externa a la entidad <nombre de tipo de entidad>**. Si agrega solo una propiedad de navegación, la asociación se podrá recorrer en una única dirección. Si no agrega ninguna propiedad de navegación, deberá agregar propiedades de clave externa para poder tener acceso a las entidades situadas en los extremos de la asociación.
Haga clic en OK.
Para eliminar una asociación
Para eliminar una asociación, realice una de las acciones siguientes:
Haga clic con el botón secundario en la asociación en la superficie de EF Designer y seleccione Eliminar.
O BIEN
Seleccione una o más asociaciones y presione la tecla Supr.
Incluir propiedades de clave externa en las entidades (restricciones referenciales)
Se recomienda exponer siempre claves externas para las relaciones en las entidades. Entity Framework usa una restricción referencial para identificar que una propiedad actúa como clave externa para una relación.
Si activa la casilla Agregar propiedades de clave externa al <nombre de tipo de entidad> Entidad al crear una relación, esta restricción referencial se agregó automáticamente.
Cuando se usa EF Designer para agregar o editar una restricción referencial, EF Designer agrega o modifica un elemento ReferentialConstraint en el contenido CSDL del archivo .edmx.
Haga doble clic en la asociación que desee editar. Aparece el cuadro de diálogo Restricción referencial.
En la lista desplegable Principal, seleccione la entidad de seguridad de la restricción referencial. Las propiedades clave de la entidad se agregan a la lista Clave principal del cuadro de diálogo.
En la lista desplegable Dependiente, seleccione la entidad dependiente de la restricción referencial.
Para cada clave principal que tenga una clave dependiente, seleccione la clave dependiente correspondiente en las listas desplegables de la columna Clave dependiente.
Haga clic en OK.
Crear y modificar asignaciones de asociación
Puede especificar cómo se asigna una asociación a la base de datos en la ventana Detalles de asignación de EF Designer.
Nota:
Solo puede asignar detalles de las asociaciones que no tienen especificada una restricción referencial. Si se especifica una restricción referencial, se incluye una propiedad de clave externa en la entidad y puede usar los detalles de asignación de la entidad para controlar a qué columna se asigna la clave externa.
Crear una asignación de asociación
Haga clic con el botón secundario en una asociación en la superficie de diseño y seleccione Asignación de tabla. Esto muestra la asignación de asociación en la ventana Detalles de asignación.
Haga clic en Agregar una tabla o vista. Aparece una lista desplegable que incluye todas las tablas del modelo de almacenamiento.
Seleccione la tabla a la que se asignará la asociación. La ventana Detalles de asignación muestra los dos extremos de la asociación y las propiedades de clave para el tipo de entidad en cada extremo.
Para cada propiedad de clave, haga clic en el campo Columna y seleccione la columna a la que se asignará la propiedad.
Editar una asignación de asociación
- Haga clic con el botón secundario en una asociación en la superficie de diseño y seleccione Asignación de tabla. Esto muestra la asignación de asociación en la ventana Detalles de asignación.
- Haga clic en Se asigna a <Nombre de tabla>. Aparece una lista desplegable que incluye todas las tablas del modelo de almacenamiento.
- Seleccione la tabla a la que se asignará la asociación. La ventana Detalles de asignación muestra los dos extremos de la asociación y las propiedades de clave para el tipo de entidad en cada extremo.
- Para cada propiedad de clave, haga clic en el campo Columna y seleccione la columna a la que se asignará la propiedad.
Editar y eliminar propiedades de navegación
Las propiedades de navegación son propiedades de acceso directo que se usan para localizar las entidades situadas en los extremos de una asociación en un modelo. Las propiedades de navegación se pueden crear al definir una asociación entre dos tipos de entidad.
Modificar las propiedades de navegación
- Seleccione una propiedad de navegación en la superficie de EF Designer. En la ventana Propiedades de Visual Studio se muestra información sobre la propiedad de navegación.
- Cambie los valores de las propiedades en la ventana Propiedades.
Eliminar las propiedades de navegación
- Si las claves externas no se exponen en los tipos de entidad del modelo conceptual, la eliminación de una propiedad de navegación puede provocar que la asociación correspondiente solo se pueda recorrer en una dirección o incluso en ninguna.
- Haga clic con el botón secundario en una propiedad de navegación en la superficie de EF Designer y seleccione Eliminar.