2010-01-26 13 views
8

Tengo dos tablas, Reports y Visualizations. Reports tiene un campo, VisualizationID, que apunta al campo del mismo nombre de Visualization mediante una clave externa. También tiene una clave única declarada en el campo. VisualizationID no puede contener nulos. Esto significa que la relación tiene que ser 0..1 a 1, porque cadaReports registro debe tener un registro único, no nulo Visualizations asociado.Llaves únicas no reconocidas por Entity Framework

Entity Framework no lo ve de esta manera. Estoy recibiendo el siguiente error:

Error 113: Multiplicity is not valid in Role 'Report' in relationship 'FK_Reports_Visualizations'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be *.

Cuál es el problema aquí? ¿Cómo puedo hacer que el EF reconozca la multiplicidad de relación adecuada?

Respuesta

3

El EF se queja porque parece que está usando una Asociación FK, lo que significa que el VisualizationID es una propiedad de la Entidad y también hay una referencia de Visualización, y no puede hacer esto con las Asociaciones FK.

Sin embargo, si usa asociaciones independientes, lo que significa que no hay propiedad de VisualizationID, puede reducir la cardinalidad.

Por lo tanto, la solución es eliminar la propiedad VisualizationID de la entidad, en cuyo punto debe seguir adelante con un mapa de la asociación.

Esperanza esto ayuda

Alex

2

acabo topé con el mismo problema - Alex, su explicación es correcta en mi caso, pero, por supuesto, mediante la eliminación de la columna FK desde el modelo conceptual, Ya no tengo la capacidad de cambiar más tarde mi objeto relacionado cambiando el valor del campo FK ... ¡Tendré que volver a los viejos trucos para hacer esto!

¿Hay algún plan que nos permita tener nuestro pastel y comerlo también con relaciones de 1 a 0..1, es decir, ser capaz de tener el campo FK también?

Greg

(P. S. Me he comentado, pero mi representante no es lo suficientemente alta todavía!)

+1

EF 4.0 ahora permite el mapeo de clave externa como propiedad. –

Cuestiones relacionadas