2012-01-18 33 views
10

Estoy tratando de generar mis entidades desde mi base de datos SQL utilizando el elemento ADO.NET Entity Data Model y desde allí usando ADO.NET DbContext Generator. Cuando genero mi edmx desde la base de datos, parece que falta una de mis entidades en el diseñador, pero cuando miro el código detrás de edmx lo veo en el código y cuando genero el dbContext, la entidad no se genera en absoluto. ..Generación Entity Framework faltando una entidad

Cualquier consejo sería muy apreciado!

+2

¿Es tal vez la tabla que le falta una entidad para una tabla de unión para una relación de muchos a muchos? Esas tablas no tienen una clase de entidad correspondiente. – Slauma

+0

Sí, es una tabla de unión de muchos a muchos. ¡Interesante! ¡Gracias por su respuesta! – Hidan

+0

OK, he publicado mi comentario como respuesta. – Slauma

Respuesta

15

Si la tabla para la que falta una entidad es una tabla de unión para una relación muchos a muchos, no se obtiene una clase de entidad cuando se crea un modelo a partir de la base de datos. EF lo reconoce cuando la tabla tiene dos columnas que forman una clave primaria compuesta y cada columna es una clave externa para otras dos tablas.

EF administra la tabla de unión internamente y no la expone como una entidad. Solo tiene la entidad "izquierda" y la "derecha" con colecciones de navegación apuntando entre sí. Si agrega o elimina una relación agregando o quitando elementos a esas colecciones EF creará las instrucciones INSERT y DELETE correctas para la tabla de unión cuando llame al SaveChanges. Pero esto sucede internamente y está completamente oculto para ti.

En otras palabras: todo está bien.

+0

Ahh bien, ¡gracias por la explicación! – Hidan

+0

Entonces, ¿no hay forma de consultar esa entidad? – Hidan

+1

@Willku: además de usar SQL directo, no. Porque no es una entidad. La tabla de unión es un artefacto de SQL que EF elimina por diseño. No necesitas esto como una entidad. Puede hacer cada manipulación de la tabla de unión a través de las colecciones de navegación de la entidad izquierda y derecha. Si la tabla de unión tuviera una o más columnas adicionales, obtendría una entidad para la tabla. Pero en términos de EF, esta ya no sería una relación de muchos a muchos, sino dos relaciones de uno a muchos con esa entidad intermedia. – Slauma

Cuestiones relacionadas