Me añadido un nuevo ADO.Net Modelo de Datos de Entidad en mi proyecto y utiliza el Asistente De Actualización De para agregar tablas en el modelo. Cinco de las tablas seleccionadas fueron añadidos a la superficie de diseño. Otras dos tablas no va a agregar. Puedo seleccionar en el asistente y haga clic en Finalizar, pero que nunca aparecen en la superficie de diseño.

Es esto un error, o hay algunas situaciones en las que una tabla no puede ser añadido para el 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.

  • Este debe tener más votos ups. Yo no tenía idea de Visual Studio no podía agregar a la tabla desde el .archivo edmx es el único lugar en el error de hecho va. Esperemos que tengan un cuadro de diálogo en la v2!
  • +1 – En mi caso, no había ningún mensaje de error.
  • Como se señaló, las tablas que no de importación no tiene claves primarias. Añadir un PK y ya está bueno para ir.

11 Comentarios

  1. 43

    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 aparecen en la superficie de diseño. Ver el archivo XML para ver si este es el caso. En este caso, el Asistente para la Actualización no le permitirá volver a agregar las tablas, ya que ellos ya son parte del modelo de entidad. Así que, hablando en general, el Asistente para la Actualización sabe más acerca de su modelo de entidad que sobre la superficie de diseño, de por sí.

    No creo que esa es exactamente la situación en la que estamos, pero debe darle una idea general de la solución: ir en el XML y buscar referencias a las tablas en cuestión.

    • Yo he tenido este mismo problema, he eliminado una tabla en el modelo y cuando fui a agregar de nuevo el diseñador visual no demostrar que estaba en la base de datos. Para conseguir alrededor de él he borrado el texto de el .archivo edmx, pero se las arregló para meterse hasta el XML. Si usted hace esto por favor, copia el archivo primero, por si acaso. Por suerte, yo era capaz de encontrar el mal estado de la etiqueta con git diff.
  2. 38

    Conjunto de Claves principales para todas las tablas o solo uno desmarcada la casilla de verificación «Permitir valores null» para cualquier columna de cada tabla. A mí me funciona 🙂

    • Esta creo que es la respuesta correcta, al menos lo fue para mí. Gracias!
    • Su trabajado mí. Gracias
    • Esto funcionó para mí! Gracias
    • desmarcada la casilla de verificación «Permitir valores null» trabajó para mí!!!! Gracias!!!!
    • He luchado acerca de este problema en la mayoría de los de mi proyecto. Finalmente, Su respuesta hizo claro para mí. En mi caso, En la unión de la tabla I, no especifica not null en el campo de la clave o simplemente de clave principal. Después de la fijación de este, había una paz de la mente. Muchas gracias
    • Lo que he entendido con la resolución es que no podemos agregar una tabla en el Modelo de Entidad si i) que la tabla no tiene una clave principal o (ii) no Permitir Null en la columna de la tabla.

  3. 10

    1.Cambiar la estructura de la Tabla y agregar una Columna Principal. Actualizar el Modelo.

    2.Modificar la .Archivo EDMX en el Editor de XML y tratar de añadir una Nueva Columna en la etiqueta para esta tabla específica. (NO DE TRABAJO)

    3.En lugar de crear una nueva Columna Principal para Salir de la tabla, voy a hacer una clave compuesta con la participación de todas las columnas existentes.(Ha TRABAJADO)

    Entity Framework: Añadir DataTable con ninguna Clave Principal para el Modelo de Entidad.

    • Me encontré con este mismo problema. El Modelo de Entidad fue la adición de la tabla, sin embargo, no se muestra en el diseñador. Yo también no podía acceder a él en el código. He añadido un campo de ID de la Clave… funcionó!
  4. 5

    He tenido este problema también, todo lo anterior no funciona para mí. Lo que ayudó a que para mí fue la siguiente.

    Cuando intenta conectar con una base de datos de la base de datos puede tener diferentes usuarios con diferentes credenciales que puede aceptar. Digamos que el usuario a hasta D.

    Si intenta conectarse con un usuario asegurarse de que el usuario tiene el derecho de credenciales habilitado, en este caso, leer y escribir en opciones habilitadas.

    Para hacer este inicio de MS SQL Server Managment Studio, conectado con el servidor SQL server y seleccione la base de datos intenta realizar una conexión con visual studio. En «your_dbname’ –> Seguridad –> Usuarios a encontrar una lista de los usuarios. Botón derecho del ratón en el nombre de usuario intenta iniciar sesión con y seleccione propiedades. Se abre una ventana. Seleccione la pestaña ‘General’ (seleccionada por defecto) de la página y en la pestaña «Base de datos de miembros de la función de’ asegurarse de que ‘db_datareader’ y ‘db_datawrite’ son seleccionados.

    Nota: Cuando inicie la sesión en demasiado MS SQL Server Managment Studio asegúrese de que usted inicie la sesión con un usuario que puede activar o desactivar estas opciones…

  5. 5

    De verificación para ‘Nulos’ en su mesa. Si todas las columnas se ponen a Permitir valores Null’ Entity Framework considera como un ‘Null’ de la tabla. Yo tenía el mismo problema y desmarca «Permitir Null’ y añadió que la requerida por la tabla.

    • Funciona, estúpido ningún error ni advertencia aparece en los registros!
  6. 1

    Esto ha sido resuelto en la versión más reciente(medio ambiente: VS 2012 , .net framework 4.5). Simple abrir la .archivo edmx y añadir tablas y procedimientos almacenados /puntos de vista. La tabla o vista que no tiene clave primaria será creado como de sólo lectura tabla/vista.

    De la tabla/vista ‘NOMBRE_TABLA’ no tiene definida una clave principal. La clave ha sido inferido y la definición fue creado como un sólo lectura tabla/vista.

    • el error sigue siendo, en algunos casos, de todos modos evento en EF 5.0
  7. 0

    Que no es necesario eliminar todo el modelo (que pueden ser cientos de mesas!).

    El Asistente puede controlar «añadir nuevo», pero algunos cambios como el cambio de claves compuestas y cambiar el nombre de las columnas – no sé qué hacer – por lo que no intenta – y las cosas se ponen fuera de sincronización.

    ASÍ:
    ELIMINAR las tablas en cuestión desde el Modelo conceptual modo) Y de la Modelo.De la tienda y, a continuación, Actualizar el modelo utilizando el Asistente, y volver a agregar las tablas en cuestión.

  8. 0

    Acaba de arrojar algo más de detalle para alguien que no ha tenido que hacer esto.
    Estoy utilizando visual studio 2013 con update 4 instalado.
    He añadido algunos campos a una tabla, se elimina la tabla de mi modelo, a continuación, fue a la actualización y no me deja marcar ninguna de las tablas.

    Tengo una clave principal.

    He creado una nueva tabla de prueba, que se presentaron y que me dejaría a comprobarlo, pero no es mi original.

    Nunca he abierto en el XML antes y no sabía cómo hacerlo.
    Hace clic derecho sobre el .archivo edmx y «abrir con» — seleccione el editor de xml.

    la tabla en cuestión estaba allí todo el derecho, incluso tenía los nuevos campos (extraño).

    He eliminado todas las referencias a ella (tomó un par de veces) — después de eliminar uno y guardar, si intenta abrir y no voy a mostrar sólo tienes que ir adelante y elegir «ver XML» – mira los errores y siguen básicamente el rebote de la pelota hasta que se haya limpiado hasta.

    la esperanza de que el detalle extra ayuda a alguien.

    Joe

  9. 0

    Una forma fácil que encontré fue que (en SQL Server Management Studio) agregar una columna de ID de tipo INT, anule la selección de «Permitir valores Nulos», y en virtud de las propiedades de la Columna (ID) >> la Especificación de la Identidad >> comprobar (Identidad), y asegúrese de que es el incremento de conjunto.

    Una vez que el anterior se hace, volver a su .edmx ventana, haga clic en, y el Modelo de Actualización de la Base de datos.

Dejar respuesta

Please enter your comment!
Please enter your name here