Soy MUY nuevo en ASP.NET MVC (3) y estoy teniendo dificultades para resolver un error de compilación en Visual Studio:
No se pudo encontrar el tipo o el nombre del espacio de nombres 'DbContext' (¿le falta una directiva de uso o una referencia de ensamblado?)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Data.Entity;
namespace MyProjectName.Models
{
public class MachineModel
{
// name
[Required]
[Display(Name = "Nom de la machine")]
public string Name { get; set; }
// IP
[Required]
[RegularExpression(@"(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",
ErrorMessage = "Donnez une adresse IPv4 valide.")]
[Display(Name = "Adresse IP de la machine")]
public string IP { get; set; }
}
public class MachineDbContext : DbContext
{
public DbSet<MachineModel> Machines{ get; set; }
}
}
Los dos errores que obtengo son:
- No se pudo encontrar el tipo o el nombre del espacio de nombres 'DbContext' (¿le falta una directiva de uso o una referencia de ensamblado?)
- No se pudo encontrar el tipo o nombre de espacio de nombres 'DbSet' (¿falta una directiva de uso o una referencia de ensamblado?)
¿Qué me estoy perdiendo?
Respuestas:
Tuve el mismo problema. Resulta que necesita la referencia EntityFramework.dll (y no System.Data.Entity).
Acabo de sacarlo de la aplicación MvcMusicStore que puede descargar de: http://mvcmusicstore.codeplex.com/
También es un ejemplo útil de cómo usar el framework de entidad primero en código con MVC.
fuente
System.Data.Entity
Debe hacer referencia al ensamblaje a su proyecto o instalar elEntityFramework
paquete NuGet que configurará todo por usted.fuente
References
elemento en el proyecto y seleccioneAdd Reference...
. Luego, en la.NET
pestaña, seleccioneSystem.Data.Entity
. Y si desea usar NuGet, haga clic derecho en elReferences
elemento y luego seleccioneAdd Library Package Reference...
y en la pestaña En línea, busqueEntityFramework
.TOOLS > Library Package Manager > Package Manager Console
en VS2012 y escribíinstall-package EntityFramework
en el indicador. Funcionó perfectamente.Solo una nota rapida. Es DbContext, no DBContext. es decir, con una 'B' minúscula. Descubrí esto porque tenía el mismo problema mientras intelesense no funcionaba hasta que intenté escribir el espacio de nombre completo System.Data.Entity ... y name y finalmente sugirió la opción en minúscula 'b':
System.Data.Entity.DbContext
fuente
Tuve el mismo problema usando VS2010. Sé que esto no es realmente una respuesta. Solo pensé que podría ayudar a alguien. Lo resolví usando el nombre completo para DBContext.
En vez de
solía
y reconstruido el proyecto. De repente, VS estaba contento e incluso pude eliminar el nombre completo y usar DBContext.
fuente
Tuve el mismo problema ... Instalar EF desde Package Manager Console funcionó para mí
el comando fue:
Install-Package EntityFramework
fuente
Si su compilador no reconoce
asegurarse
en su archivo .csproj, tiene la siguiente referencia
dentro del elemento
que alberga referencias a otras asambleas.
fuente
Tuve el mismo problema ... Tengo VS2010 express ...
(Nota: si ve este problema, intente verificar las referencias a EntityFramework.dll ... Puede que falte).
Lo siguiente lo resolvió por mí.
Instalé la última actualización de herramientas MVC 3 y
luego instalé EntityFramework 4.1
o utilicé NUGet, es decir. desde con Visual Studio 2010 Express (Herramientas-> Administrador de paquetes de biblioteca -> Agregar referencia de paquete de biblioteca -> Seleccionar en línea -> EntityFramework)
Extrañamente, eso no funcionó ... Así que tuve que agregar manualmente una referencia a "EntityFramework.dll".
Intente hacer una búsqueda para el archivo dll ... puede estar aquí
"C: \ Archivos de programa (x86) \ Assemblies de referencia \ Microsoft \ Framework.NETFramework \ v4.0 \ "
Si ya lo tiene ... simplemente agregue una referencia '.net'.
Nota: Si usa NuGet, crea una carpeta "paquetes" junto a su directorio de Soluciones. Encontrará la carpeta "EntityFramework.4.1.10331.0" dentro de ella. Dentro de la carpeta "Libs" encontrará "EntityFramework.dll".
Agregue referencia usando la pestaña Examinar y seleccione el dll anterior.
fuente
Estoy usando Visual Studio 2010 express y agrego una referencia para
C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll
resolver el problema.fuente
Esto ayuda realmente útil:
fuente
Para obtener instrucciones paso a paso, consulte esta nueva serie de tutoriales MVC / EF: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp -net-mvc-application El tutorial asume que has instalado la última actualización de herramientas MVC 3 y proporciona un enlace en caso de que no lo hayas hecho.
fuente
Su proyecto no puede resolver las clases EntityFramework hasta que no lo haya agregado en su proyecto. Para agregar compatibilidad con EntityFramework, debe seguir estos pasos: Herramientas-> Administrador de paquetes Nuget -> Administrar paquete Nuget para la solución Examinar EntityFramework Muestra la última versión estable de EntityFramework. actualmente 6.1.3 es la última versión Instalarlo para el proyecto seleccionado.
fuente
Descargar http://www.dll-found.com/download/e/EntityFramework.dll
Pégalo (para x86)
Luego haga clic derecho en proyecto -> agregar referencia -> seleccione EntityFramework
Bingo......
fuente
Visual Studio Express SP1 Haga clic derecho en el Explorador de soluciones> Referencias> Agregar referencia de paquete de biblioteca> EntityFramework
fuente
Utilice CTP5 en su lugar, es una versión más nueva con algunos cambios en la API. Debe agregar una referencia a EntityFramework.dll que está instalado en el directorio CTP; el valor predeterminado es: c: \ Archivos de programa \ Microsoft ADO.NET Entity Framework Feature CTP5 \ Binaries \ EntityFramework.dll para el sistema de 32 bits. En el sistema de 64 bits, se colocará en Archivos de programa (x86).
fuente
Esto me sucedió cuando ramifiqué el código. Para solucionarlo, hice clic con el botón derecho en mi proyecto en Visual Studio, elegí administrar paquetes de Nu-get, desinstalé EntityFramework y luego lo reinstalé. Problema resuelto
fuente
Acabo de tener este problema y ninguna de las otras soluciones funcionó para mí. Estoy usando Visual Studio 2010 y tengo dos proyectos en mi solución: UIProject y DataAccessProject. El UIProject tiene una referencia al DataAccessProject.
Mi UIProject apuntaba a .Net Framework 4 pero mi DataAccessProject apuntaba a .Net Framework 3.5 por alguna razón.
Problemas resueltos. Ahora tengo referencias a EntityFramework y System.Data.Entity
fuente
Tuve el mismo problema. Tuve que volver a escribir "DBContext" después de agregar una referencia al marco de entidad y resolvió el problema.
significa que Visual Studio no pudo reconocer la clase automáticamente y esperó a que se volviera a escribir. así que es mejor agregar referencia primero y luego implementar código. VS 2013 - último uso
fuente
Primero tuve que desinstalar EntityFramework (Desinstalar-paquete EntityFramework (aparentemente no distingue entre mayúsculas y minúsculas)), luego instalarlo nuevamente (Instalar-paquete EntityFramework), a través de la Consola PM
fuente
Tuve este problema, leí la respuesta anterior y descargué el entityframework.ddl pero descubrí que ya está referenciado. Entonces agregué el espacio de nombres y el problema fue resuelto
usando System.Data.Entity;
Estoy usando Visual Studio 2010, SP1 instalado
fuente
habiendo hecho referencia a entityframework.dll, ambos system.data.entity funcionaron.
fuente
Tuve el mismo error pero el problema fue solo un problema accidental con mi modelo.
Accidentalmente puse ...
... dentro de la clase de modelo.
fuente
Como forma alternativa, puede ir AQUÍ : instrucciones sobre cómo instalar cualquier dll requerido.
O puede descargar NuGet y administrarlo desde VS
fuente
Haga clic con el botón derecho en su referencia y vaya a administrar los paquetes NuGet, luego elija en línea todo, luego la fuente del paquete NuGet en el cuadro de texto de búsqueda tipo Entity Framework e instálelo.
fuente
1) Desinstalar Entity Framework de All proyectos
2) Reiniciar Visual Studio
3) Reinstalar en todos los proyectos requeridos
y empezó a funcionar
fuente
Puede haber un caso en el que hace referencia a todo lo que necesita e incluso puede ir a la definición presionando F12 en la clase DbContext que lo lleva al espacio de nombres System.Data.Entity pero aún recibe esta desagradable advertencia del compilador. Asegúrese de que el Marco de destino de su proyecto y el de la versión de Entity Framework que está utilizando coincidan. Vaya a Proyecto-> Propiedades-> Pestaña Aplicación. Cambie el Marco de destino (no puedo decir exactamente a cuál, la prueba y el error ayudarán). Solo mis dos centavos.
fuente
También me irrito por este problema muchas veces y finalmente encuentro la solución. Vaya al archivo edmx-> Actualizar modelo de la base de datos-> Actualizar-> Finalizar. Solución limpia-> Reconstruir solución
fuente
puedes probar en la consola del administrador de paquetes
PM> EntityFrameWork \ enable-migrations
fuente
Como los otros han sugerido:
Eche un vistazo a continuación y vea si puede decirme qué está mal:
public class PanelLengthContext : DBContext { }
??!¡Asegúrese de que el nombre de la clase no esté mal escrito - (mayúsculas y minúsculas)!
DbContext
Es la ortografía correcta.public class PanelLengthContext : DbContext {}
HTH
fuente
Tengo el mismo problema que usted, no puedo implementarlo en la clase Controlador mientras funciona cuando lo pongo en la clase modelo. Agregue estos códigos en la parte superior de su clase de controlador
fuente
Me he enfrentado al mismo problema y luego he agregado el espacio de nombres
Después de agregar está funcionando bien
Prueba esto puede ayudarte a resolver tu problema
y antes de eso instale el marco de la entidad desde Nuget Manager
fuente