2012-02-20 16 views
15

Soy nuevo en la plataforma asp.net MVC3 estoy siguiendo el tutorial que se publica en la página web asp.net: http://www.asp.net/mvc/tutorials/getting-started-with-aspnet-mvc3/getting-started-with-mvc3-part1-csMVC3: no puede recuperar metadatos para mi clase de modelo cuando quiero accesse datos del modelo de controlador de

Pero en el quinto paso que necesito para acceder a los datos de mi clase de modelo desde un controlador tengo algunos problemas, he creado la clase de modelo y la clase de contexto, pero cuando quiero crear una clase de controlador usando la plantilla de andamio (controlador con leer/escribir acciones y vistas utilizando el marco de la entidad) me da un error como el siguiente:

incapaz de recuperar metadatos para 'nombre completo de mi clase de modelo'. sistema de configuración no se puede inicializar

+0

Probablemente porque su cadena de conexión está equivocada. Póngalo aquí. –

+0

¡intente esto! ... me ayudó ... espero que también lo ayude ... http://stackoverflow.com/questions/8238811/mvc-add-controller-is-unable-to-retrieve-metadata- config-system-failed-to-i Gracias !! – aromore

+0

Esta es mi conexión en la web.config: Comprobar – Hardworker

Respuesta

5

prueba este ...

<add name="MovieDBContext" connectionString="data source=.\SQLEXPRESS;&#xD;&#xA;   Integrated Security=SSPI;&#xD;&#xA; AttachDBFilename=|DataDirectory|\MVCtest.sdf;&#xD;&#xA;   User Instance=true" providerName="System.Data.SqlClient" /> 
+0

Sí, puedo agregar a esto también que a veces es mejor comenzar desde cero. Elimine cualquier cadena de conexión existente de web.config, elimine el Modelo de entidad (.edmx) y vuelva a crearlo. A veces pienso que algo se modifica y lo estropea todo. Además, si utiliza clases parciales con el mismo nombre, asegúrese de seleccionar la clase de entidad adecuada cuando realice el andamiaje. – atconway

+1

+1 Y si tiene instalada la versión completa de SQL Server, apúntela a una base de datos en localhost 'data source = localhost; Integrated Security = SSPI; Database = test;' – Andomar

+0

@Andomar Estoy trabajando con la versión completa de SQL Servidor. Entonces no hay Movie DB existente en mi servidor. Estoy siguiendo el mismo tutorial según OP. Y yo también recibo el mismo error. ¿Qué está mal con mi connstring? '' Si añado 'providerName =" System.Data.SqlClient "', entonces funciona, aunque no tiene sentido para mí. Sin embargo, no puedo ver el Movie db creado en Server Explorer de VS. Entonces no estoy seguro de si estoy en la dirección correcta. – bonCodigo

18

acaba de cambiar su proveedor de conexión de tipo cadena para System.Data.SqlClient

+2

No funciona, tampoco estoy seguro de que funcione para '.sdf'. Agregar la cadena de conexión tal como está después de agregar el controlador es una solución. – Sami

5

he cambiado el providerName a System.Data.SQLClient como sugerido en otro anwer. Esto me permitió crear el controlador en el paso agregar controlador. Pero la aplicación no mostraría el recurso de películas cuando lo ejecuté. Luego lo cambié a System.Data.SqlServerCe.4.0 como en el tutorial y todo funcionó.

Después de leer otras discusiones en la web, he encontrado otro método.

Si no agrega la cadena de conexión hasta después de haber creado la clase de controlador, entonces funcionará también. Parece un error.

+2

+1. Agregar la cadena de conexión tal como está después de agregar el controlador es una solución. – Sami

+1

Lo mismo funcionó para mí. Agregué la cadena de conexión después de agregar el controlador. – maulik13

12

No hay ningún error. Es sólo que hay un orden cronológico debe seguir con el fin de reflejar la estructura del modelo y se van a migrar a la base de datos y no tienen errores:

  1. crear el controlador (no incluyen todavía las cadenas de conexión en Web. config o obtendría dicho error.)
  2. Agregue la cadena de conexión en Web.config con lo que está escrito en el tutorial.
  3. Finalmente, ejecute la aplicación.

NOTA: No crear manualmente la base de datos compacta porque Visual Studio creará y asignarla para usted junto con la estructura del modelo que se ejecuta y navegar a ese controlador en su navegador automáticamente. Solo asegúrese de tener la ruta correcta de la base de datos en su Web.config. ¡Espero que esto ayude! Saludos.

+0

Al seguir su consejo, no veo una base de datos llamada Películas creada en la ventana Explorador de servidores de VStuio, aunque sus sugerencias funcionan. Me gustaría ver el db. Además, tengo una versión completa de SQL Server. – bonCodigo

0

Asegúrese de agregar la cadena de conexión en el archivo web.config correcto porque hay 2 (uno en el nivel de solución y otro en el nivel de vista). Desea agregarlo en el nivel de vista. Su material crud se creará muy bien después de que arregle la cadena de conexión y luego cree el controlador. Gracias, Maurice Maglalang

Cuestiones relacionadas