2013-05-01 11 views
6

Sto creando un'applicazione Web utilizzando Visual Studio 2012 e Framework 4.5 e sto utilizzando MVC 4 e sono bloccato con un problema.DbContext non trovato in mvc 4

ho bisogno di usare DbContext ma I'cant scoprire che nel mio progetto significa ho aggiunto System.Data.Entity e dà ancora un errore

Il tipo o dello spazio dei nomi il nome 'DbContext' non è stato trovato (sei manca una direttiva using o un riferimento di assembly?)

Come posso risolvere questo ...?

+2

Hai dimenticato di installare EF da [nuget] (http://nuget.org/packages/EntityFramework/5.0.0)? –

+0

@CuongLe nope È già lì –

+0

@AlenJoy Hai aggiunto il file 'DBML' al tuo progetto ..? Il nome 'DBML' dovrebbe essere uguale a' DbContext' – RajeshKdev

risposta

18

Il DbContext risiede in EntityFramework.dll. See this for reference

È possibile ottenere da NuGet digitando questo comando nella PMC

Install-Package EntityFramework -Version 5.0.0 

È possibile entrare nella PMC andando a Strumenti -> Libreria Package Manager -> Package Manager Console in VS

+0

Sto facendo il tutorial di MusicStore su MVC e ho riscontrato l'errore che DbContext e DbSet mancano della refferenza. Questa soluzione funziona perfettamente! Grazie signore @vonv. –

+0

Grazie! amico, ottima soluzione – kbo4sho88

0

DbContext fa parte di EntityFramework.dll e non di System.Data.Entity.

È stato introdotto in EF 4.1. È possibile installare il pacchetto NuGet appropriato utilizzando Visual Studio 2012. ad es. Fare clic con il tasto destro su Progetto e selezionare "Pacchetti Manange NuGet" e trovare la versione EF appropriata e installarla.

4

Oltre alla risposta accettata, questo può aiutare le persone in una situazione che non è ancora stato menzionato:

Questo problema si è verificato per me quando ho creato un nuovo progetto mvc4 in un soluzione in Visual Studio esistente 2012. La soluzione conteneva già un progetto mvc4 funzionante, ma quando ho creato il secondo progetto non è stato possibile trovare il pacchetto System.Data.Entity (incluso DbContext). Il comando install-pacchetto non risolvere il problema in questa situazione, perché la soluzione complessiva già avuto il pacchetto installato:

PM> Install-Package EntityFramework 
'EntityFramework 6.0.1' already installed. 

Il problema era che il pacchetto EntityFramework non viene installato automaticamente in nuovi progetti, è necessario aggiungilo manualmente Vai a:

Tools -> Library Package Manager -> "Manage NuGet Packages for Solution..." 

Cerca EntityFramework nel box in alto a destra, fare clic su Gestisci e quindi selezionare la casella per la nuova soluzione. Il nuovo progetto dovrebbe ora essere compilato correttamente.

3

Potete farlo attraverso le seguenti fasi:

Fare clic con il Progetto nelle soluzioni Explorer.

Scegli Aggiungi riferimento ...

Cercare il file di System.Data.Entity.dll(o la EntityFramework.dll) e aggiungerli al progetto.

È anche possibile realizzare la stessa cosa attraverso NuGet se avete installato:

Fare clic con il Progetto nelle soluzioni Explorer.

Seleziona Gestisci Pacchetti Nuget ...

Cercare il EntityFramework pacchetto.

Fare clic su Installa per aggiungerlo al progetto esistente.

Dopo aver aggiunto con successo questi per la vostra applicazione, avrete solo bisogno di aggiungere un'istruzione using all'interno della pagina che si sta utilizzando il DbContext e DbSet oggetti su:

using System.Data.Entity; 

Reference Link

2

Avevo anche questo problema, e non ha funzionato fino a quando non ho installato EntityFramework dal menu -> Progetto -> Gestisci pacchetti Nuget ...

0

Questo problema si è verificato per me quando ho creato un nuovo progetto mvc4 in un esistente Soluzione in Visual Studio 2012. La soluzione conteneva già un progetto mvc4 funzionante, ma quando ho creato il secondo progetto non è stato possibile trovare lo System.Data.Entity package (incluso DbContext). Il comando install-package non risolve il problema in questa situazione, perché la soluzione complessiva già avuto il pacchetto installato:

PM> Install-Package EntityFramework 
'EntityFramework 6.0.1' already installed. 

Il problema era che il pacchetto EntityFramework non viene installato automaticamente in nuovi progetti, si deve aggiungere che manualmente. Vai a:

Tools -> Library Package Manager -> "Manage NuGet Packages for Solution..." 

Cerca EntityFramework nel box in alto a destra, fare clic su Gestisci e quindi selezionare la casella per la nuova soluzione. Il nuovo progetto dovrebbe ora essere compilato correttamente.