Le type ou le nom d'espace de noms 'DbContext' n'a pas pu être trouvé
Je suis TRÈS nouveau à ASP.NET MVC (3) et vais avoir du mal à résoudre une erreur de build dans Visual Studio:
Le type ou le nom d'espace de noms 'DbContext' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly?)
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; }
}
}
Les deux erreurs que j'obtiens sont:
- Le type ou le nom d'espace de noms
'DbContext' n'a pas pu être trouvée (sont
vous manque une directive using ou une
assemblée de référence?) - Le type ou le nom d'espace de noms 'DbSet'
n'a pas pu être trouvée (êtes-vous
manque une directive using ou une
assemblée de référence?)
Ce qui me manque?
- Avez-vous d'ajouter l'Entity Framework Code First de référence à l'aide de NuGet? Que peut-être la façon la plus facile pour résoudre les références.
- o.k. - en vertu de l'Arbre de l'Explorateur de Solution, j'ai fait un clic-droit sur Références -> Ajouter un Paquet de Bibliothèque de Référence -> EFCodeFirst -> Installer. Est-ce que vous suggérez? Après avoir suivi ces étapes, j'ai toujours le même problème.
- J'ai entre temps mis à jour le MVC 3 Outils pour la version la plus récente, et a créé un projet didacticiel suivant asp.net/mvc/tutorials/getting-started-with-mvc3-part4-cs. Dans ce projet, je n'ai pas ce problème, mais je ne peux pas obtenir DbContext pour être accepté dans mon grand projet, malgré les suggestions faites ici et par Darin ci-dessous...
- VS2017, EF6, Près de la solution. Réouverture de la solution. Maintenant correctement reconnaît DbContext.
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème. S'avère, vous avez besoin de la EntityFramework.dll de référence (et non pas du Système.Les données.Entité).
J'ai juste retiré de la MvcMusicStore application que vous pouvez télécharger à partir de: http://mvcmusicstore.codeplex.com/
C'est aussi un bon exemple de comment utiliser entity framework code first avec MVC.
Vous avez besoin de faire référence à la
System.Data.Entity
assebmly de votre projet ou de l'installation de laEntityFramework
NuGet package qui va de l'installation de tout pour vous.References
élément dans le projet et sélectionnezAdd Reference...
. Puis, dans la.NET
onglet, sélectionnezSystem.Data.Entity
. Et si vous souhaitez utiliser NuGet, clic droit sur leReferences
élément, puis sélectionnezAdd Library Package Reference...
et dans l'onglet en Ligne, recherche pourEntityFramework
.TOOLS > Library Package Manager > Package Manager Console
dans VS2012 et tapéinstall-package EntityFramework
à l'invite de commandes. A parfaitement fonctionné.>Tools >NuGet Package Manager >Package Manager Console
et le typeinstall-package EntityFramework
.Juste une note rapide. Il est DbContext, pas DBContext. c'est à dire avec une minuscule "B". J'ai découvert ce parce que j'ai eu le même problème lors de la intelesense ne fonctionnait pas jusqu'à ce que j'ai essayé en tapant le nom complet de l'espace du Système.Les données.Entité... et le nom et enfin, il a suggéré la lettre minuscule " b " en option:-
Système.Les données.De l'entité.DbContext
J'ai eu le même problème à l'aide de VS2010.
Je sais que ce n'est pas vraiment une réponse. J'ai juste pensé qu'il pourrait aider quelqu'un.
Je l'ai résolu en utilisant le nom pleinement qualifié pour DBContext.
Au lieu de
J'ai utilisé
et reconstruit le projet. Soudain VS était heureux, et j'ai même été en mesure de supprimer le nom complet, et il suffit d'utiliser DBContext.
J'ai eu le même problème... l'Installation de l'EF à partir de la Console du Gestionnaire de Package a fonctionné pour moi
la commande était:
Install-Package EntityFramework
J'ai eu le même problème..j'ai VS2010 express..
(Note: Si vous voyez un problème, essayez de vérifier les références à EntityFramework.dll ..
Peut-être qu'il est manquant.)
Suivantes résolu pour moi.
J'ai installé la dernière MVC 3 Outils de mise à Jour
puis j'ai installé EntityFramework 4.1
ou à l'aide de
NUGet ie. de avec Visual Studio 2010 Express
(Outils->Gestionnaire de paquets de Bibliothèque -> Ajouter un Paquet de bibliothèque de référence -> Choisir en Ligne -> EntityFramework)
Étrange qui ne fonctionne pas..j'ai Donc dû ajouter manuellement une référence à "EntityFramework.dll"
essayez de faire une recherche pour la dll ..peut-être ici
"C:\Program Files (x86)\de Référence Assemblées\Microsoft\Framework.NETFramework\v4.0\"
Si vous l'avez déjà..il suffit d'ajouter un '.net de référence.
Remarque: Si vous utilisez NuGet ,il crée un dossier "packages" à côté de votre Solution d'annuaire.
Vous trouverez le "EntityFramework.4.1.10331.0" dossier à l'intérieur d'elle.Dans "Libs" dossier, vous trouverez
"EntityFramework.dll" .
Ajouter une référence à elle à l'aide de Parcourir et sélectionnez l'onglet ci-dessus dll.
Je suis à l'aide de Visual Studio 2010 express et l'ajout d'une référence à
C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll
résolu le problème.Pour l'étape par étape les instructions, consultez cette nouvelle MVC /EF série de tutoriels:
http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application
Ce tutoriel suppose que vous avez installé la dernière MVC 3 Outils de mise à Jour et fournit un lien dans le cas où vous n'avez pas.
Si votre compilateur ne reconnait pas
assurez-vous que
dans votre .fichier csproj, vous avez la référence suivante
l'intérieur de l'élément
que les maisons des références à d'autres assemblées.
Cela aide vraiment à portée de main:
sous-menu.
appuyez sur entrée.
Visual Studio Express SP1
Faites un clic droit dans l'Explorateur de solutions > Références > Ajouter un Paquet de Bibliothèque de Référence > EntityFramework
Utilisation CTP5 au lieu de cela elle est plus récente version avec quelques modifications dans l'API. Vous devez ajouter une référence à EntityFramework.dll qui est installé dans les CTP répertoire par défaut est: c:\Program Files\Microsoft ADO.NET Entity Framework Feature CTP5\Binaries\EntityFramework.dll pour système 32 bits. Sur système 64 bits, il sera placé dans Programme Files (x86).
Ce qui m'est arrivé lorsque je lance le code. Pour le fixer j'ai cliqué avec le bouton droit de mon projet dans Visual Studio, a choisi de gérer Nu-obtenir des paquets, désinstallé EntityFramework, puis ré-installé. Problème résolu
J'ai juste eu ce problème et aucune des autres solutions n'a fonctionné pour moi. Je suis à l'aide de Visual Studio 2010 et j'ai deux projets dans ma solution: UIProject et DataAccessProject. Le UIProject a une référence à la DataAccessProject.
Mon UIProject était le ciblage de l' .Net Framework 4, mais mon DataAccessProject était le ciblage de l' .Net Framework 3.5 pour une raison quelconque.
Problèmes résolus. Maintenant, j'ai des références à la fois EntityFramework et du Système.Les données.Entité
j'ai eu le même problème.J'ai dû le réécrire "DBContext" après l'ajout de la référence à entityframework et il a résolu le problème.
sa signifie que Visual studio n'était pas capable de reconnaître automatiquement la classe et l'attendaient à être re-tapé.
donc de son mieux pour ajouter une référence en premier et ensuite de mettre en œuvre le code.
VS 2013 - ultime utilisé
J'avais d'abord de désinstaller EntityFramework de Désinstallation du paquet EntityFramework (non sensible à la casse apparemment)), puis l'installer à nouveau(Install-package EntityFramework), via le PM Console
Votre projet incapable de résoudre EntityFramework classes jusqu'à ce que vous ne l'ajoute pas dans votre projet.
Pour l'ajout de EntityFramework de soutien, vous devez suivre ces étapes:
Outils->Gestionnaire de Package Nuget ->Gérer les package Nuget pour la solution
parcourir EntityFramework
Il montre la dernière version stable EntityFramework version.
actuellement 6.1.3 est la dernière version
L'installer pour le projet sélectionné.
Télécharger http://www.dll-found.com/download/e/EntityFramework.dll
Le coller dans (x86)
Puis à Droite cliquez sur projet -> ajouter une référence -> sélectionnez EntityFramework
Bingo......
J'ai eu ce problème, lisez la réponse ci-dessus et télécharger le entityframework.ddl, mais trouve qu'il est alreadt référencés. J'ai donc ajouté l'espace de noms et le problème a été résolu
en utilisant le Système.Les données.De l'entité;
Je suis à l'aide de Visual Studio 2010 SP1 est installé
les avoir référencés entityframework.dll les deux système.les données.entité travaillé.
J'ai eu la même erreur, mais le problème était juste un problème accidentel avec mon modèle.
J'ai accidentellement mis...
...à l'intérieur de la classe du modèle.
Comme alternative, vous pouvez aller ICI - instructions sur la façon d'installer toutes les dll requis.
Ou vous pouvez télécharger NuGet et de le gérer à partir de VS
Droit de la souris sur votre référence et accédez à gérer les packages NuGet, puis choisissez en ligne, alors NuGet package source dans la zone de texte recherche de type Entity Framework et de l'installer.
1) Désinstallation d'Entity Framework de Tous projets
2) Redémarrez Visual Studio
3) la Réinstallation de tous les projets requis
et il a commencé à travailler
Il pourrait y avoir des cas où vous faites référence à tout ce que vous devez et vous pouvez même Aller à la Définition en appuyant sur la touche F12 sur DbContext classe qui vous emmène au Système.Les données.Entité de l'espace de noms, mais vous obtenez toujours ce vilain message d'avertissement du compilateur. Assurez-vous que la Cible Cadre de votre projet et celui de l'Entity Framework version que vous utilisez le match. Aller à Projet->Propriétés->Onglet Application. Modifier le Framework Cible(ne peut pas exactement dire à celui qui, d'essai et d'erreur de l'aide.). Juste mes deux cents.
J'ai aussi irrité de cette question à de nombreuses reprises et, enfin, trouver la solution.Allez à fichier edmx->mise à Jour du Modèle de Base de données->Actualisation->Finition.
Nettoyer la Solution->Reconstruire la Solution
vous pouvez essayer sur la console du gestionnaire de package
H> EntityFrameWork\enable-migrations
Comme les autres l'ont suggéré:
Jetez un oeil ci-dessous et voir si vous pouvez me dire quel est le problème:
public class PanelLengthContext : DBContext { }
??!Assurez-vous que le nom de la classe n'est pas mal orthographiés - (sensibilité à la casse)!
DbContext
est l'orthographe correcte.public class PanelLengthContext : DbContext {}
HTH
J'ai le même problème que vous, je suis incapable de la mettre en œuvre dans la classe du Contrôleur, même si elle fonctionne quand je l'ai mis dans la classe du modèle. Ajouter ces codes sur le haut de votre contrôleur de classe
Que j'ai rencontré le même problème et puis j'ai ajouter l'espace de noms
Après avoir ajouté ça fonctionne
Essayez ceci peut vous aider à résoudre votre problème
et avant que installer l'entity framework de Nuget Gestionnaire de