22

Sto tentando di utilizzare la funzionalità Codefirst di ADO.Net dell'ultima Entity Framework 4.0. Come parte di questo ho installato Entity Framework CTP 4 da Microsft e utilizzando Scott's tutorial per creare il modello per primo. All'interno del tutorial è specificato DBContext e DBSet<>. Qualcuno potrebbe dire qual è il riferimento da utilizzare per accedere a questa classe.Riferimenti per DBContext, DBSet <> in Entity Framework

ho usato i seguenti riferimenti tuttavia nulla accade per DBContext e DBSet<>

  • System.Data.Entity
  • System.Data.Entity.Design

risposta

14

Utilizzare 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).

+0

Potresti dirlo, supporterà la versione .Net a 64 bit? – Elangesh

+0

Supporta già la versione a 64 bit. –

+2

Non più. Ora dovresti semplicemente usare nuget Install-Module entityframework –

1

Il blogpost cita l'assemblea:

The DbContext and DbSet classes used above are provided as part of the EF4 Code-First library. You’ll need to add a reference to the System.Data.Entity.CTP assembly that is installed into the \Program Files\Microsoft ADO.NET Entity Framework Feature CTP4\Binaries directory to reference these classes. You’ll also want to add a “using System.Data.Entity” namespace statement at the top of your “NerdDinners” class file.

Tuttavia I credo che il nuovo CTP5 includa alcune modifiche a codefirst, quindi suggerirei di dare un'occhiata a quello invece.

+0

Potresti dirlo, supporterà la versione .Net a 64 bit? – Elangesh

+0

Non sono sicuro se ci sono assembly a 64 bit nel CTP. In caso contrario, il tuo progetto dovrà scegliere come target x86. –

+0

@Elan: è costruito per qualsiasi CPU, quindi sei bravo :-) –

4

Utilizzare "DbContext" vs "DBContext" e "DbSet" vs "DBSet". La sensibilità al caso è il problema.

+1

Thomas, ho appena specificato il codice, non copiando e incollando questo. Ho usato il caso corretto nel mio codice in quanto è stato copiato dal tutorial originale. Comunque grazie per avermi fatto sapere che le parole chiave sono nel caso sbagliato. Saluti. – Elangesh

+0

questo è ... ho fatto l'errore. –

26

È possibile utilizzare il Gestore pacchetti libreria, se disponibile (si installa automaticamente con MVC 3.0).

Da all'interno del vostro progetto in Visual Studio 2010, andare a

Tools > Library Package Manager > Package Manager Console 

Da all'interno del vostro progetto in Visual Studio 2013, andare a

Tools > NuGet Package Manager > Package Manager Console 

Nella console, dopo la PM> prompt digitare

install-package entityframework 

Questo installerà il pacchetto e aggiungerà EntityFr riferimento al tuo progetto

+0

Install-Package: impossibile trovare il pacchetto 'entityframework'Atline: 1 char: 1 ... qualche idea del perché? – brntsllvn

+0

Guardando il gestore di pacchetti NuGet-Solution, vedo che ho installato EntityFramework (v6.0.2) ... ma non è stato possibile trovare DbContext. Qualsiasi aiuto sarebbe grande. – brntsllvn

0

se si utilizza .NET 3.5 quindi modificare il tuo framework di destinazione per NET 4.0

+0

Grazie effettivamente a @Arek Bee, ho usato .Net 4.0, tuttavia alcuni di come il riferimento non esiste per Entity per qualche motivo. Più tardi, dopo aver installato il CTP5, tutto andava bene – Elangesh

2

Per aggiungere EF al progetto utilizzare la console Package Manager ed eseguire il comando:

Install-Package EntityFramework 

non dovreste' t link direttamente alla posizione installata delle DLL come menzionato in un'altra risposta.

+1

Funzionava come un incantesimo, grazie – Sandy

1

Stavo seguendo l'esercitazione MvcMusicStore (utilizzando Mvc 4 anziché Mvc 3).

Ho trovato nella parte 4 ho avuto problemi con questo (http://www.asp.net/mvc/tutorials/mvc-music-store/mvc-music-store-part-4).

Quando ho aggiunto il seguente riferimento utilizzando System.Data.Entità;, ho ricevuto il seguente errore:

il tipo o il namespace nome di 'entità' non esiste nello spazio dei nomi 'system.data'

@ soluzione Fecklmore ha lavorato per me.

Aprire la console di Gestione pacchetti andando su Strumenti> Gestore pacchetti libreria> Console Gestione pacchetti.

Quindi digitare il seguente: Installare-Pacchetto EntityFramework

Questo installerà EntityFramework (cioè EF) nel progetto, ed eliminerà l'errore precedente.

Problemi correlati