Eu sou MUITO novo no ASP.NET MVC (3) e estou com dificuldades para resolver um erro de compilação no Visual Studio:
Não foi possível encontrar o tipo ou nome do namespace 'DbContext' (está faltando uma diretiva de uso ou uma referência de montagem?)
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; }
}
}
Os dois erros que estou recebendo são:
- Não foi possível encontrar o tipo ou nome do namespace 'DbContext' (está faltando uma diretiva de uso ou uma referência de montagem?)
- Não foi possível encontrar o tipo ou nome do namespace 'DbSet' (está faltando uma diretiva de uso ou uma referência de montagem?)
o que estou perdendo?
Respostas:
Eu tive o mesmo problema. Acontece que você precisa da referência EntityFramework.dll (e não do System.Data.Entity).
Eu apenas peguei no aplicativo MvcMusicStore, do qual você pode baixar: http://mvcmusicstore.codeplex.com/
Também é um exemplo útil de como usar a estrutura da entidade primeiro com o MVC.
fonte
Você precisa referenciar
System.Data.Entity
assebmly ao seu projeto ou instalar oEntityFramework
pacote NuGet, que configurará tudo para você.fonte
References
item do projeto e selecioneAdd Reference...
. Em seguida, na.NET
guia, selecioneSystem.Data.Entity
. E se você deseja usar o NuGet, clique com o botão direito do mouse noReferences
item e selecioneAdd Library Package Reference...
e, na guia Online, procureEntityFramework
.TOOLS > Library Package Manager > Package Manager Console
no VS2012 e digiteiinstall-package EntityFramework
no prompt. Funcionou perfeitamente.Apenas uma nota rápida. É DbContext, não DBContext. ou seja, com um 'B' minúsculo. Descobri isso porque tive o mesmo problema enquanto o intelesense não estava funcionando até tentar digitar o espaço para nome completo System.Data.Entity ... e name e, finalmente, sugeriu a opção 'b' em minúscula: -
System.Data.Entity.DbContext
fonte
Eu tive o mesmo problema usando o VS2010. Eu sei que isso não é realmente uma resposta. Eu apenas pensei que isso poderia ajudar alguém. Eu o resolvi usando o nome completo para DBContext.
Ao invés de
eu usei
e reconstruiu o projeto. De repente, o VS ficou feliz e consegui remover o nome completo e usar o DBContext.
fonte
Eu tive o mesmo problema ... A instalação do EF do Package Manager Console funcionou para mim
o comando foi:
Install-Package EntityFramework
fonte
Se o seu compilador não reconhecer
certificar-se de que
no seu arquivo .csproj, você tem a seguinte referência
dentro do elemento
que abriga referências a outras assembléias.
fonte
Eu tive o mesmo problema .. eu tenho o VS2010 express ..
(Nota: se você vir esse problema, tente verificar as referências ao EntityFramework.dll. Pode estar faltando.)
O seguinte resolveu para mim.
Instalei a última atualização do MVC 3 Tools
e instalei o EntityFramework 4.1
ou usando o NUGet, por exemplo. no Visual Studio 2010 Express (Ferramentas-> Gerenciador de Pacotes de Bibliotecas -> Adicionar referência de pacote de biblioteca -> Selecione Online -> EntityFramework)
Estranhamente, isso não funcionou .. Então, eu tive que adicionar manualmente uma referência a "EntityFramework.dll",
tentando fazer uma pesquisa para a dll ... pode estar aqui
"C: \ Arquivos de programas (x86) \ Assemblies de referência \ Microsoft \ Framework.NETFramework \ v4.0 \ "
Se você já o possui .. basta adicionar uma referência '.net'.
Nota: Se você usa o NuGet, ele cria uma pasta "pacotes" ao lado do diretório da solução. Você encontrará a pasta "EntityFramework.4.1.10331.0" dentro dela. Dentro da pasta "Libs", você encontrará "EntityFramework.dll".
Adicione referência a ele usando a guia Procurar e selecione a dll acima.
fonte
Estou usando o Visual Studio 2010 express e adicionando uma referência para
C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll
resolver o problema.fonte
Isso ajuda muito útil:
fonte
Para obter instruções passo a passo, consulte esta nova série de tutoriais do MVC / EF: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp -net-mvc-application O tutorial pressupõe que você instalou a última atualização do MVC 3 Tools e fornece um link, caso não o tenha.
fonte
Seu projeto não conseguiu resolver as classes EntityFramework até que você não o tenha adicionado ao seu projeto. Para adicionar o suporte ao EntityFramework, siga estas etapas: Ferramentas-> Gerenciador de Pacotes Nuget -> Gerenciar pacote Nuget para procurar a solução EntityFramework Mostra a última versão estável do EntityFramework. atualmente 6.1.3 é a versão mais recente Instale-o para o projeto selecionado.
fonte
Faça o download do http://www.dll-found.com/download/e/EntityFramework.dll
Cole-o (para x86)
Em seguida, clique com o botão direito do mouse em projeto -> adicionar referência -> selecione EntityFramework
Bingo......
fonte
Visual Studio Express SP1 Clique com o botão direito do mouse em Solution Explorer> Referências> Adicionar Referência ao Pacote da Biblioteca> EntityFramework
fonte
Use CTP5 em vez disso, é a versão mais recente, com algumas alterações na API. Você deve adicionar uma referência ao EntityFramework.dll que está instalado no diretório CTP - o padrão é: c: \ Arquivos de programas \ Microsoft ADO.NET Entity Framework Feature CTP5 \ Binaries \ EntityFramework.dll para o sistema de 32 bits. No sistema de 64 bits, ele será colocado em Arquivos de Programa (x86).
fonte
Isso aconteceu comigo quando eu ramifiquei o código. Para corrigi-lo, cliquei com o botão direito do mouse no meu projeto no Visual Studio, escolhi gerenciar pacotes Nu-get, desinstalou o EntityFramework e o reinstalei. Problema resolvido
fonte
Acabei de ter esse problema e nenhuma das outras soluções funcionou para mim. Estou usando o Visual Studio 2010 e tenho dois projetos em minha solução: UIProject e DataAccessProject. O UIProject tem uma referência ao DataAccessProject.
Meu UIProject estava direcionado ao .Net Framework 4, mas meu DataAccessProject estava direcionado ao .Net Framework 3.5 por algum motivo.
Problemas resolvidos. Agora eu tenho referências para EntityFramework e System.Data.Entity
fonte
Eu tive o mesmo problema.Eu tive que reescrever "DBContext" depois de adicionar referência ao entityframework e resolveu o problema.
isso significa que o Visual studio não conseguiu reconhecer a classe automaticamente e esperou que ela fosse digitada novamente. portanto, é melhor adicionar referência primeiro e depois implementar o código. VS 2013 - final usado
fonte
Precisei desinstalar o EntityFramework (desinstalar o pacote EntityFramework (aparentemente não diferencia maiúsculas de minúsculas)) e depois instalá-lo novamente (Install-package EntityFramework), por meio do console PM
fonte
Eu tive esse problema, leia a resposta acima e baixe o entityframework.ddl, mas constatei que ele já foi mencionado. Então eu adicionei o espaço para nome e o problema foi resolvido
using System.Data.Entity;
Estou usando o Visual Studio 2010, SP1 instalado
fonte
tendo referenciado entityframework.dll, system.data.entity funcionou.
fonte
Eu tive o mesmo erro, mas o problema era apenas um problema acidental com o meu modelo.
Eu acidentalmente coloquei ...
... dentro da classe de modelo.
fonte
Como forma alternativa, você pode ir AQUI - instruções sobre como instalar qualquer dll necessária.
Ou você pode baixar o NuGet e gerenciá-lo no VS
fonte
Clique com o botão direito do mouse em sua referência e vá para gerenciar pacotes NuGet, escolha todos online, depois a fonte do pacote NuGet na caixa de texto de pesquisa, digite Entity Framework e instale-o.
fonte
1) Desinstalando o Entity Framework de todos projetos
2) Reinicie o Visual Studio
3) Reinstalando para todos os projetos necessários
e começou a trabalhar
fonte
Pode haver um caso em que você faz referência a tudo o que precisa e pode até Ir para a definição pressionando F12 na classe DbContext, que o leva ao espaço para nome System.Data.Entity, mas você ainda recebe esse aviso desagradável do compilador. Verifique se o Framework de destino do seu projeto e o da versão do Entity Framework que você está usando correspondem. Vá para Projeto-> Propriedades-> Guia Aplicativo. Altere a estrutura de destino (não é possível dizer exatamente qual, tentativa e erro ajudará.). Apenas meus dois centavos.
fonte
Também fico irritado com esse problema muitas vezes e finalmente encontro a solução. Vá para o arquivo edmx-> Atualizar modelo do banco de dados-> Atualizar-> Concluir. Solução Limpa-> Reconstruir Solução
fonte
você pode tentar no console do gerenciador de pacotes
PM> EntityFrameWork \ enable-migrations
fonte
Como os outros sugeriram:
Dê uma olhada abaixo e veja se você pode me dizer o que está errado:
public class PanelLengthContext : DBContext { }
??!Verifique se o nome da classe não está incorreto - (diferencia maiúsculas de minúsculas)!
DbContext
é a ortografia correta.public class PanelLengthContext : DbContext {}
HTH
fonte
Eu tenho o mesmo problema que você, não consigo implementá-lo na classe Controller enquanto ele funciona quando eu o coloco na classe model. Adicione esses códigos na parte superior da sua classe de controlador
fonte
Eu enfrentei o mesmo problema e adicionei o namespace
Depois de adicionar, está funcionando bem
Tente isso pode ajudá-lo a resolver seu problema
e antes disso, instale a estrutura da entidade do Nuget Manager
fonte