Imansible trovare il nome del tipo o spazio dei nomi ‘DbContext’

Sono MOLTO nuovo in ASP.NET MVC (3) e sto avendo difficoltà a risolvere un errore di compilazione in Visual Studio:

Non è stato ansible trovare il nome dello spazio dei nomi “DbContext” (manca una direttiva using o un riferimento all’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 Machines{ get; set; } } } 

I due errori che sto ottenendo sono:

  • Non è stato ansible trovare il nome dello spazio dei nomi “DbContext” (manca una direttiva using o un riferimento all’assembly?)
  • Non è stato ansible trovare il nome dello spazio dei nomi “DbSet” (manca una direttiva using o un riferimento all’assembly?)

Cosa mi manca?

Ho avuto lo stesso problema. Risulta, è necessario il riferimento EntityFramework.dll (e non System.Data.Entity).

L’ho appena estratto dall’applicazione MvcMusicStore che puoi scaricare da: http://mvcmusicstore.codeplex.com/

È anche un utile esempio di come utilizzare il framework di entity framework code-first con MVC.

È necessario fare riferimento al System.Data.Entity assiduo al progetto o installare il pacchetto EntityFramework EntityFramework che configurerà tutto per te.

Solo una breve nota. È DbContext, non DBContext. cioè con una “B” minuscola. Ho scoperto questo perché ho avuto lo stesso problema mentre intelesense non funzionava fino a quando non ho provato a digitare lo spazio completo del nome System.Data.Entity … e il nome e infine suggerito l’opzione ‘b’ minuscola: –

System.Data.Entity.DbContext

Ho avuto lo stesso problema con VS2010. So che questa non è davvero una risposta. Ho solo pensato che potesse aiutare qualcuno. Ho risolto il problema utilizzando il nome completo per DBContext.

Invece di

 public class MachineDbContext : DbContext 

ero solito

 public class MachineDbContext : System.Data.Entity.DbContext 

e ricostruito il progetto. All’improvviso VS era felice, e io ero persino in grado di rimuovere il nome completo e utilizzare solo DBContext.

Ho avuto lo stesso problema … L’installazione dell’EF dalla console di Gestione pacchetti ha funzionato per me

il comando era: Install-Package EntityFramework

Ho avuto lo stesso problema … ho VS2010 Express ..

(Nota: se vedi questo problema prova a verificare i riferimenti a EntityFramework.dll. Potrebbe essere che manchi.)

Il seguente ha risolto per me.

Ho installato l’ultimo aggiornamento di strumenti MVC 3
quindi ho installato EntityFramework 4.1
o usando NUGet ie. da con Visual Studio 2010 Express (Strumenti-> Gestore pacchetti libreria -> Aggiungi riferimento pacchetto libreria -> Seleziona online -> EntityFramework)

Stranamente che non ha funzionato .. Quindi ho dovuto aggiungere manualmente un riferimento a “EntityFramework.dll”
prova a fare una ricerca per la DLL … può essere qui
“C: \ Programmi (x86) \ Assiemi di riferimento \ Microsoft \ Framework.NETFramework \ v4.0 \”

Se già lo hai .. basta aggiungere un riferimento “.net”.

Nota: se si utilizza NuGet, crea una cartella “pacchetti” sul lato della directory della soluzione. All’interno troverai la cartella “EntityFramework.4.1.10331.0”. Nella cartella “Libs” troverai “EntityFramework.dll”.
Aggiungi riferimento ad esso utilizzando la scheda Sfoglia e seleziona la dll sopra.

Snap per lo stesso

Per le istruzioni dettagliate, vedere questa nuova serie di tutorial MVC / EF: http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp -net-mvc-application Il tutorial presume che tu abbia installato l’ultimo aggiornamento di MVC 3 Tools e fornisca un link nel caso in cui tu non l’abbia.

Se il tuo compilatore non riconosce

  • System.Data.Entity.Infrastructure
  • DbContext
  • DbSet
  • et alii,

assicurarsi

  1. hai Entity Framework 4.1 installato sul tuo computer;
  2. nel tuo file .csproj, hai il seguente riferimento

     
    

    all’interno dell’elemento

     
       ...
     
    

    che alloggia riferimenti ad altre assemblee.

Sto usando Visual Studio 2010 Express e aggiungendo un riferimento a C:\Program Files\Microsoft ADO.NET Entity Framework 4.1\Binaries\EntityFramework.dll risolto il problema.

Questo aiuta davvero a portata di mano:

  1. Seleziona il progetto ProjectNAme in Esplora soluzioni.
  2. Dal menu Strumenti, scegliere Gestore pacchetti libreria che ha un sottomenu.
  3. Dal sottomenu selezionare Console gestore pacchetti.
  4. Al prompt PM della console digitare install-package EntityFramework, quindi premere invio.

Visual Studio Express SP1 Fare clic con il tasto destro in Esplora soluzioni> Riferimenti> Aggiungi riferimento pacchetto libreria> EntityFramework

Usa CTP5 invece è la versione più recente con alcune modifiche in API. È necessario aggiungere un riferimento a EntityFramework.dll installato nella directory CTP. Il valore predefinito è c: \ Programmi \ Microsoft ADO.NET Entity Framework Feature CTP5 \ Binaries \ EntityFramework.dll per sistema a 32 bit. Sul sistema a 64 bit verrà inserito in Program Files (x86).

Questo è successo a me quando ho ramificato il codice. Per risolvere il problema, ho fatto clic con il pulsante destro del mouse sul mio progetto in Visual Studio, ho scelto di gestire i pacchetti Nu-get, EntityFramework disinstallato e reinstallato. Problema risolto

Ho appena avuto questo problema e nessuna delle altre soluzioni ha funzionato per me. Sto usando Visual Studio 2010 e ho due progetti nella mia soluzione: UIProject e DataAccessProject. UIProject ha un riferimento a DataAccessProject.

Il mio UIProject aveva come objective il .Net Framework 4, ma il mio DataAccessProject aveva come objective il .Net Framework 3.5.

  • Ho cambiato entrambi i progetti su target .Net Framework 4
  • Disinstallato, quindi reinstallato il pacchetto NuGet di Entity Framework.

Problemi risolti. Ora ho riferimenti a EntityFramework e System.Data.Entity

Ho avuto lo stesso problema. Ho dovuto riscrivere “DBContext” dopo aver aggiunto il riferimento a entityframework e ha risolto il problema.
ciò significa che Visual Studio non è stato in grado di riconoscere automaticamente la class e ha aspettato che venisse ridigitata. quindi è meglio aggiungere prima il riferimento e poi implementare il codice. VS 2013 – ultimo usato

Ho dovuto prima disinstallare EntityFramework (Uninstall-package EntityFramework (senza distinzione tra maiuscole e minuscole), quindi installarlo di nuovo (Install-package EntityFramework), tramite la console PM

Il tuo progetto non è stato in grado di risolvere le classi EntityFramework finché non lo hai aggiunto al tuo progetto. Per aggiungere il supporto di EntityFramework è necessario seguire questa procedura: Strumenti-> Gestore pacchetti Nuget -> Gestisci pacchetto Nuget per la soluzione Sfoglia EntityFramework Mostra l’ultima versione di EntityFramework stabile. attualmente 6.1.3 è l’ultima versione Installalo per il progetto selezionato.

Scarica http://www.dll-found.com/download/e/EntityFramework.dll

Incollalo (per x86)

 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ 

Quindi fare clic con il tasto destro del mouse su progetto -> aggiungi riferimento -> selezionare EntityFramework

Bingo ……

Ho avuto questo problema, ho letto la risposta di cui sopra e ho scaricato il file entityframework.ddl, ma ho scoperto che è già stato fatto riferimento. Così ho aggiunto lo spazio dei nomi e il problema è stato risolto

using System.Data.Entity;

Sto usando Visual Studio 2010, SP1 installato

avendo fatto riferimento a entityframework.dll, entrambi i sistemi system.data.entity funzionavano.

Ho avuto lo stesso errore ma il problema era solo un problema accidentale con il mio modello.

Ho accidentalmente messo …

 public class MyModelDBContext : Context { public DBSet MyModels { get; set; } } 

… all’interno della class del modello.

In alternativa puoi andare QUI – istruzioni su come installare qualsiasi DLL richiesta.

Oppure puoi scaricare NuGet e gestirlo da VS

Fai clic con il pulsante destro del mouse sul riferimento e vai a gestire i pacchetti NuGet, quindi seleziona tutto online, quindi l’origine del pacchetto NuGet nella casella di testo di ricerca Entity Framework e installalo.

1) Disinstallazione di Entity Framework da tutti i progetti

2) Riavvia Visual Studio

3) Reinstallazione di tutti i progetti richiesti

e ha iniziato a funzionare

Potrebbe esserci un caso in cui si fa riferimento a tutto ciò che è necessario e si può anche andare su Definizione premendo F12 sulla class DbContext che porta al namespace System.Data.Entity ma si ottiene comunque questo brutto avvertimento del compilatore. Assicurati che il Framework di destinazione del tuo progetto e quello della versione di Entity Framework che stai utilizzando corrispondano. Vai a Progetto-> Proprietà-> Scheda Applicazione. Cambiare il quadro di riferimento (non si può dire esattamente a quale, saranno d’aiuto le prove e gli errori). Solo i miei due centesimi.

Inoltre, mi infastidisco da questo problema molte volte e trovo la soluzione. Vai al file edmx-> Aggiorna modello da Database-> Aggiorna-> Fine. Soluzione pulita-> Ricrea soluzione

puoi provare sulla console del gestore pacchetti

PM> EntityFrameWork \ enable-migrations

Come gli altri hanno suggerito:

  1. Aggiungi i riferimenti e le direttive corrette. Ma ancora non funziona? Forse hai lo stesso problema che ho fatto:

Dai un’occhiata qui sotto e vedi se puoi dirmi cosa c’è che non va:

public class PanelLengthContext : DBContext { } ??!

Assicurati che il nome della class non sia sbagliato – (maiuscole e minuscole)!

  • DbContext è l’ortografia corretta.
  • questo è come dovrebbe apparire:
  • controlla l’ortografia. non perdere 20 minuti della tua vita come ho fatto io. public class PanelLengthContext : DbContext {}

HTH

Ho lo stesso problema di te, non sono in grado di implementarlo nella class Controller mentre funziona quando lo inserisco nella class del modello. Aggiungi questi codici nella parte superiore della class del controller

  using TimeSheetManagementSystem.Data; using Microsoft.Extensions.Configuration; using Microsoft.AspNetCore.Identity.EntityFrameworkCore; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json; 

Ho affrontato lo stesso problema e quindi ho aggiunto lo spazio dei nomi

 using Practiceusingentityframework.Models; 

Dopo aver aggiunto sta funzionando bene

Prova questo potrebbe aiutarti a risolvere il tuo problema

e prima di ciò installare il framework entity framework da Nuget Manager