Très novice dans ASP.NET MVC (3), je ne parviens pas à résoudre une erreur de génération dans Visual Studio:
Le type ou le nom de l'espace de noms 'DbContext' est introuvable (vous manque une directive using ou une référence 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 je reçois sont:
Qu'est-ce que je rate?
J'ai eu le même problème. Il s'avère que vous avez besoin de la référence EntityFramework.dll (et non de System.Data.Entity).
Je viens de le tirer de l'application MvcMusicStore que vous pouvez télécharger à partir de: http://mvcmusicstore.codeplex.com/
C'est également un exemple utile d'utilisation de MVC dans le cadre d'une structure de code d'entité d'abord.
Vous devez référencer l'assembly System.Data.Entity
à votre projet ou installer le package EntityFramework
NuGet qui configurera tout pour vous.
Juste un petit mot. C'est DbContext, pas DBContext. c'est-à-dire avec un 'B' minuscule. J'ai découvert cela parce que j'avais le même problème alors qu'Intelesense ne fonctionnait pas jusqu'à ce que j'essaie de saisir l'espace de noms complet System.Data.Entity ... et name, et finalement, il a suggéré l'option "b" minuscule: -
System.Data.Entity.DbContext
J'ai eu le même problème en utilisant VS2010. Je sais que ce n'est pas vraiment une réponse. Je pensais juste que cela pourrait aider quelqu'un… .. Je l'ai résolu en utilisant le nom complet de DBContext.
Au lieu de
public class MachineDbContext : DbContext
J'ai utilisé
public class MachineDbContext : System.Data.Entity.DbContext
et reconstruit le projet. Soudain, VS était heureux et j'ai même pu supprimer le nom qualifié complet et utiliser DBContext.
J'ai eu le même problème ... L'installation de l'EF à partir de Package Manager Console a fonctionné pour moi
la commande était: Install-Package EntityFramework
J'ai eu le même problème..J'ai VS2010 express ..
(Remarque: Si vous voyez ce problème, essayez de vérifier les références à EntityFramework.dll .. Peut-être est-il manquant.)
Ce qui suit l'a résolu pour moi.
J'ai installé la dernière MVC 3 Tools Update
puis j'ai installé EntityFramework 4.1
ou en utilisant NUGet ie. à partir de avec Visual Studio 2010 Express (Outils-> Gestionnaire de packages de bibliothèque -> Ajouter une référence de package de bibliothèque -> Sélection en ligne -> EntityFramework)
Étrangement, cela ne fonctionnait pas .. Alors, je devais ajouter manuellement une référence à "EntityFramework.dll"
essayez de rechercher la dll ..peut être ici
"C:\Fichiers de programme (x86)\Assemblys de référence\Microsoft\Framework.NETFramework\v4.0 \"
Si vous l’avez déjà, ajoutez une référence '.net'.
Remarque: si vous utilisez NuGet, il crée un dossier "packages" à côté de votre répertoire Solution . Vous y trouverez le dossier "EntityFramework.4.1.10331.0". Dans le dossier "Libs", vous trouverez " EntityFramework.dll ".
Ajoutez une référence en utilisant l’onglet Parcourir et sélectionnez la DLL ci-dessus.
J'utilise 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
a résolu le problème.
Si votre compilateur ne reconnaît pas
assure-toi
dans votre fichier .csproj, vous avez la référence suivante
<Référence Include = "EntityFramework, Version = 4.1.0.0, Culture = neutre, PublicKeyToken = b77a5c561934e089, processorArchitecture = MSIL" />
dans l'élément
<Groupe d'éléments> ... </ ItemGroup>
qui abrite des références à d'autres assemblées.
Pour des instructions pas à pas, consultez cette nouvelle série de tutoriels MVC/EF: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model- for-an-asp-net-mvc-application Le tutoriel suppose que vous avez installé la dernière mise à jour de MVC 3 Tools et fournit un lien au cas où ce ne serait pas le cas.
Cela aide vraiment pratique:
Utilisez CTP5 à la place, il s’agit d’une version plus récente avec quelques modifications apportées à l’API. Vous devez ajouter une référence à EntityFramework.dll qui est installé dans le répertoire CTP - la valeur par défaut est: c:\Program Files\Microsoft ADO.NET Fonctionnalité Entity Framework CTP5\Binaries\EntityFramework.dll pour système 32 bits. Sur le système 64 bits, il sera placé dans Program Files (x86).
Télécharger http://www.dll-found.com/download/e/EntityFramework.dll
Collez-le dans (pour x86)
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\
Puis Clic cliquez sur projet -> ajouter une référence -> sélectionnez EntityFramework
Bingo ......
Cela m’est arrivé quand j’ai ramifié du code. Pour résoudre ce problème, j'ai cliqué avec le bouton droit sur mon projet dans Visual Studio, choisi de gérer les packages Nuget, de désinstaller EntityFramework, puis de le réinstaller. Problème résolu
j'ai eu le même problème. J'ai dû réécrire "DBContext" après avoir ajouté une référence à entityframework et le problème a été résolu.
cela signifie que Visual studio n’a pas été en mesure de reconnaître la classe automatiquement et a attendu qu’elle soit à nouveau saisie. Il est donc préférable d’ajouter une référence puis d’implémenter du code. VS 2013 - ultime utilisé
Visual Studio Express SP1 Cliquez avec le bouton droit de la souris dans Explorateur de solutions> Références> Ajouter une référence de package de bibliothèque> EntityFramework.
Votre projet ne parvient pas à résoudre les classes EntityFramework tant que vous ne l'avez pas ajouté à votre projet . Pour ajouter le support EntityFramework, vous devez suivre les étapes suivantes: dernière version Installez-le pour le projet sélectionné.
Je viens d'avoir ce problème et aucune des autres solutions ne fonctionnait pour moi. J'utilise Visual Studio 2010 et ma solution comporte deux projets: UIProject et DataAccessProject. Le UIProject a une référence au DataAccessProject.
Mon UIProject ciblait le .Net Framework 4, mais mon DataAccessProject visait le .Net Framework 3.5 pour une raison quelconque.
Problèmes résolus. Maintenant, j'ai des références à la fois EntityFramework et System.Data.Entity
Je devais d'abord désinstaller EntityFramework (Uninstall-package EntityFramework (apparemment non sensible à la casse)), puis le réinstaller (Install-package EntityFramework), via la console PM
Cliquez avec le bouton droit de la souris sur votre référence et accédez à la gestion des packages NuGet, puis sélectionnez Tout en ligne, puis Source du package NuGet dans la zone de recherche, tapez Entity Framework et installez-le.
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 ...
public class MyModelDBContext : Context
{
public DBSet<MyModel> MyModels { get; set; }
}
... à l'intérieur de la classe de modèle.
J'ai eu ce problème, lisez la réponse ci-dessus et téléchargez le entityframework.ddl mais constate qu'il est déjà référencé. J'ai donc ajouté l'espace de noms et le problème a été résolu
using System.Data.Entity;
J'utilise Visual Studio 2010, SP1 installé
1) Désinstallation de Entity Framework de All projects
2) Redémarrez Visual Studio
3) Réinstallation sur tous les projets requis
et ça a commencé à fonctionner
Je suis également irrité par ce problème plusieurs fois et trouve enfin la solution.Allez dans le fichier edmx-> Mettre à jour le modèle à partir de la base de données-> Actualiser-> Terminer . Solution propre-> Solution de reconstruction
Dans certains cas, vous pouvez référencer tout ce dont vous avez besoin et vous pouvez même accéder à la définition en appuyant sur F12 dans la classe DbContext qui vous dirige vers l’espace de noms System.Data.Entity, mais vous obtenez toujours cet avertissement du compilateur. Assurez-vous que le cadre cible de votre projet et celui de la version d'Entity Framework que vous utilisez correspondent. Allez dans Projet-> Propriétés-> Application. Changez le cadre cible (vous ne pouvez pas dire exactement à qui, essais et erreurs vous aideront.). Juste mes deux cents.
ayant référencé entityframework.dll les deux system.data.entity ont fonctionné.
J'ai le même problème que vous, je ne parviens pas à l'implémenter dans la classe Controller tant qu'il fonctionne lorsque je le mets dans la classe modèle Ajoutez ces codes en haut de votre classe de contrôleur
using TimeSheetManagementSystem.Data;
using Microsoft.Extensions.Configuration;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using Newtonsoft.Json;
Comme les autres l'ont suggéré:
Regardez ci-dessous et voyez si vous pouvez me dire ce qui ne va pas:
public class PanelLengthContext : DBContext { }
??!
DbContext
est l'orthographe correcte.public class PanelLengthContext : DbContext {}
HTH
J'ai fait face au même problème et ensuite j'ai ajouté l'espace de noms
using Practiceusingentityframework.Models;
Après l'ajout ça fonctionne bien
Essayez ceci peut vous aider à résoudre votre problème
et avant cela installez le framework d'entité à partir de Nuget Manager
vous pouvez essayer la console du gestionnaire de paquets
PM> EntityFrameWork\enable-migrations