¿Por qué mi espacio de nombres System.Data.Entity está en blanco para proyectos c#?

Estoy trabajando en el proyecto ac# asp.net MVC. Me lo entregaron como un proyecto simple y antiguo de asp.net que actualicé a MVC 3. Normalmente uso vb.net para mis proyectos, pero me lo entregaron como ac# proyecto. En todos mis proyectos, creo un repositorio base que usa genéricos y puede manejar casi todas las situaciones básicas, la tabla que cita está representada por una variable miembro del tipo IDbSet en el espacio de nombres System.Data.Entity. Esto siempre ha funcionado bien en mis proyectos vb. En este proyecto, recibo un error de compilación que indica que el tipo no se reconoce y me pregunta si me falta una directiva de uso o una referencia de ensamblaje.

Cuando trato de definir la variable especificando explícitamente el espacio de nombres así:

protected readonly System.Data.Entity.IDbSet mObjectSet;

Sigo recibiendo el error, obtengo inteligencia después de System. y después de Datos. pero una vez que escribo Entity. no consigo nada He intentado limpiar y reconstruir, reiniciar Visual Studio, reiniciar mi computadora. Y no parece haber un solo problema relacionado en Google. ¡Cualquier ayuda es muy apreciada!

Edit:

Debería haber mencionado que ya tengo una referencia a la versión 4.0.0.0 de System.Data.Entity.

preguntado el 04 de julio de 12 a las 05:07

¿Falta (léase: necesita agregar) una referencia? -

Recuerdo vagamente haberme encontrado con esto, pero no recuerdo la solución. Mire su salida de compilación (no solo la ventana de errores) y vea si hay otros errores. -

@MitchellKrenz: ¿Y reiniciar Visual Studio no ayuda? -

El error que recibo es: error CS0234: el tipo o el nombre del espacio de nombres 'IDbSet' no existe en el espacio de nombres 'System.Data.Entity' (¿falta una referencia de ensamblaje?) -

@John Gathogo, No, pero obtuve la respuesta que necesitaba, vea a continuación. ¡Gracias! -

3 Respuestas

IDbSet la interfaz vive en EntityFramework.dll montaje (no en System.Data.Entity.dll montaje, ¡estén atentos!). Solo agregue una referencia (References carpeta en el árbol del proyecto, luego haga clic con el botón derecho y elija Add reference o use el administrador de paquetes NuGet, si ya lo ha instalado).

Respondido 04 Jul 12, 06:07

Debería haber mencionado que ya tengo una referencia a la versión 4.0.0.0 de Dell. - mitchellkrenz

AFAIK, no había EntityFramework.dll versión 4.0.0.0, desde EntityFramework.dll es una "extensión" (que proporciona la API de enfoque Code First) de System.Data.Entity.dll. ¿Está confundiendo IDbSet con la interfaz IObjectSet (msdn.microsoft.com/en-us/library/dd642094.aspx, se define en System.Data.Entity.dll)? - Dennis

Tiene razón, no solo leí mal su comentario sino también la página de MSDN cuando miré eso antes para verificar en qué ensamblaje estaba, realmente debería dormir un poco jaja, también es por eso que odio que me entreguen un proyecto en lugar de creándolo yo mismo. ¡Muchos gracias! - mitchellkrenz

Comprueba si tienes Entidad.de.datos.del.sistema referencia

EDITAR: Creo que necesitas la versión 3.5.0.0 o 4.0.0.0

Respondido 04 Jul 12, 05:07

Debería haber mencionado que ya tengo una referencia a la versión 4.0.0.0 de Dell. - mitchellkrenz

También tenga en cuenta que VS 2010 crea de forma predeterminada un modelo de entidad de marco de entidad 4.0 (dentro de System.data.entity), y vs 2012 crea un modelo de entidad de marco de entidad 5.0 (dentro de EntityFramework.dll).

Respondido 10 Abr '13, 12:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.