web-dev-qa-db-fra.com

Le type ou le nom de l'espace de noms 'DbContext' est introuvable (EF installé)

J'utilise VS 2012. J'ai installé avec Nuget la EntityFramework (version 6.1.1) et ajouté des références aux System.Data et System.Data.Entity, mais lorsque j'ouvre une nouvelle classe dans la solution en faisant référence à DbContext, il indique:

"Le type ou nom de l'espace de noms 'DbContext' n'a pas pu être trouvé (vous manquez D'une directive using ou d'une référence Assembly?)"

C'est bizarre parce que DbContext est vert, comme toutes les classes reconnues, lorsque j'appuie sur F12 pour examiner la classe DbContext, elle m'amène à la classe System.Data.Entity.DbContext telle qu'elle devrait être.

public DbContext MyContex { get; set; }

Les mêmes happanes avec DbSet

public DbSet<TEntity> MySet { get; set; }

Que manque-t-il d'autre?

9
user2254436

Il s'avère que le projet a été compilé avec Target Framework 3.5. Lorsque je l'ai changé en version 4.5, cela a fonctionné. Merci à tous pour vos commentaires.

3
user2254436

Install-Package EntityFramework - version 5.0.0

3
CodeArt

using System.Data.Entity;

// ceci résoudra à la fois les erreurs DbContext et DbSet

2
HulcherApp

Avez-vous essayé de référencer EntityFramework.dll à la place? Vous pouvez également essayer le nom qualifié complet "public System.Data.Entity.DbContext MyContex {get; set;}".

1
Jason Spruce

Toutes mes excuses pour la réponse trop tardive: le problème était le même aujourd'hui avec VS2015. Quoi qu’il en soit, le nom qualifié complet fera le travail,

classe publique StudentEntities: System.Data.Entity.DbContext

1
Swinkaran

Le problème se produit principalement lorsque vous modifiez la version de votre solution .Net. J'ai résolu le problème en

Ajout de Dll EntityFramework.dll si vous utilisez EntityFramework Version 6

1
Nadir

J'ajoute un nouveau projet à une solution existante et rencontre le même problème. J'ai utilisé Outils -> Gestionnaire de paquets NuGet -> Gérer les paquets NuGet pour solution ... et j'ai pu voir les versions utilisées par tous les autres projets. De cette façon, j'ai pu choisir la même version pour mon projet qui a été utilisée dans le reste de la région.

0
Ted O'Connor

J'obtenais cette erreur après la mise à niveau de Visual Studio 2015 à 2017. J'ai fermé VS, supprimé mon fichier .suo, redémarré VS, reconstruit la solution et tout fonctionne correctement à présent.

0
coryvb123