2010-11-28 16 views
17

Estoy utilizando Entity Framework, y estoy tratando de asociar una entidad que se creó a partir de una tabla de base de datos con una entidad que se creó a partir de una vista de base de datos. Debido a que Entity Framework no puede inferir las relaciones entre una tabla de base de datos y una vista de forma automática, estoy usando el diseñador de entidades para construir una "asociación" entre las entidades. Sin embargo, si la clave externa es del tipo nullalbe, aparece el siguiente error:Entity Framework: entidades de asociación de problemas con campo nullable

Error 113: La multiplicidad no es válida en la función 'Empresa' en la relación 'UsersView'. Dado que todas las propiedades en el rol dependiente son anulables, la multiplicidad del rol principal debe ser '0..1'.

En mi caso, tengo una clave foránea de CompanyId en mi UsersView que puede contener nulos (es decir, los usuarios pueden no tener una empresa). La creación de una asociación con una clave externa con posibilidad de nulos nunca fue un problema con Linq 2 SQL. ¿Alguien sabe cómo puedo solucionar este problema en Entity Framework?

Gracias de antemano.

Respuesta

24

Creo que debería poder seleccionar la Asociación y establecer la configuración de Multiplicidad en el panel Propiedades en 0..1. Eso debería resolver el error.

+0

Gracias Dave. Tu respuesta resolvió mi problema. –

+0

+1, gracias Dave. Tu respuesta también resolvió mi problema :) – Homam

3

Estoy publicando esto porque me encontré con el mismo error al crear manualmente una asociación en el diseñador de modelos en Visual Studio 2010. Mi campo no permitía nulos en la base de datos pero por alguna razón en el diseñador la propiedad Nullable para ese campo se estableció en (Ninguno) en lugar de Verdadero. Me tomó un tiempo descubrir por qué el diseñador se estaba quejando. Una vez que cambié manualmente la propiedad Nullable del campo, estaba intentando crear una asociación sin errores.

Sé que esto no responde la pregunta original pero encontré esta publicación tratando de resolver mi problema que estaba dando el mismo error.

+0

¡Gracias! ¡Salvaste mi día! – user3009269

Cuestiones relacionadas