2010-02-02 15 views
9

Tengo un modelo de Entity Framework generado por el asistente de Visual Studio 2008 basado en una base de datos Sql Server 2008.Cómo crear una relación entre la tabla y la vista en Entity Framework

El modelo tiene una vista que lógicamente se une en una relación muchos a muchos con otra tabla a través de una tabla de unión (impuesta en la base de datos por un desencadenador de inserción/actualización). Tanto las tablas como la vista son parte del modelo, pero como no puede tener una restricción de clave externa en una vista, no tiene la relación entre la vista y la tabla de unión.

¿Es posible crear una relación en el modelo de Entity Framework para este enlace entre la tabla de unión y la vista?

Gracias por cualquier ayuda.

Respuesta

16

Sí, puede hacerlo, pero el diseñador de la GUI no podrá inferirlo por usted.

Lo primero que debe hacer es configure the view correctly. El diseñador no puede inferir la clave principal, por lo que deberá proporcionar esa información.

Ahora puede hacer clic derecho en el espacio vacío en el diseñador y luego elegir agregar una asociación. Defina la asociación entre su vista y la tabla, estableciendo la cardinalidad correctamente.

En EF 1, deberá eliminar los campos FK del esquema del cliente seleccionándolos en el diseñador y presionando eliminar. Esto se debe a que, en EF 1, no se puede asignar el mismo campo a una asociación y a una propiedad escalar. En EF 4, puede conservar los campos FK si usa asociaciones FK, o puede usar asociaciones independientes que se comporten como EF 1.

+0

muy apreciadas. – Sako73

+3

Muy útil, en mi caso también tuve que establecer la restricción referencial en las propiedades de la asociación (EF 5). –

Cuestiones relacionadas