Entidad Framework de ADO.NET: Asistente de actualización no agregará tablas

.net ado.net entity-framework primary-key visual-studio-2008

Pregunta

Agregué un nuevo Modelo de Datos de Entidad ADO.Net en mi proyecto y usé el Asistente de Actualización para agregar tablas al modelo. Cinco de las tablas seleccionadas se agregaron a la superficie de diseño. Otras dos tablas no agregarán. Los selecciono en el asistente y hago clic en Finalizar, pero nunca aparecen en la superficie de diseño.

¿Se trata de un error o existen situaciones en las que no se puede agregar una tabla al modelo (por diseño)?


ACTUALIZACIÓN: El XML (* .edmx) revela el problema.

<!--Errors Found During Generation:
warning 6013: The table/view 'FooBar.dbo.Roles' does not 
have a primary key defined and no valid primary key could be inferred. 
This table/view has been excluded. To use the entity you will need to 
review your schema, add the correct keys and uncomment it.-->
<!--<EntityType Name="Roles">
    <Property Name="role_id" Type="decimal" />
    <Property Name="role_desc" Type="nvarchar" MaxLength="30" />
</EntityType>-->

Gracias Craig por tu respuesta.

Respuesta aceptada

La superficie de diseño es diferente del modelo de entidad. Es posible tener una tabla en la asignación en su EDMX que no aparece en la superficie de diseño. Ver el archivo como XML para ver si este es el caso. En este caso, el Asistente de actualización no le permitirá volver a agregar las tablas, ya que ya forman parte del modelo de entidad. Entonces, en general, el Asistente de actualización sabe más sobre su modelo de entidad que sobre la superficie de diseño, per se .

No creo que esa sea exactamente la situación en la que se encuentra, pero debería darle una idea general de la solución: ingrese al XML y busque referencias a las tablas en cuestión.


Respuesta popular

Establezca las Claves primarias en todas las tablas o solo una casilla de verificación "Permitir nulo" en cualquier columna de cada tabla. Esto funciona para mi :)



Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow