2011-10-25 13 views
13

Mi chiedo che cosa EntityFramework.dll e System.Data.Entity.dll hanno in comune e cosa hanno di diverso? Il mio progetto fa riferimento a System.Data.Entity.dll (June CTP) per sfruttare il primo modello del codice e tutto funziona correttamente.EntityFramework.dll vs System.Data.Entity.dll - ambiguità

Ora desidero utilizzare lo strumento Code First Migrations e richiede EntityFramework.dll che devo aggiungere al mio progetto. Tuttavia, quando si fa riferimento a entrambe le librerie (EntityFramework.dll e System.Data.Entity.dll), ottengo molti errori del compilatore che sostengono che alcune classi sono definite in entrambe le librerie.

Quando si rimuove EntityFramework.dll, il progetto viene compilato nuovamente ma non è possibile utilizzare Migrazioni. Quando si fa riferimento solo a EntityFramework.dll, ricevo errori di compilatore che mi dicono che alcune classi non sono state trovate (ad esempio, il tipo di dati Spatial).

Cosa devo fare in questa situazione? Grazie in anticipo!

risposta

16

System.Data.Entity.dll versione "4.2.0.0" (giugno CTP 2011) contiene tutto da EFv4.0 e EFv4.1 = API ObjectContext e API DbContext + nuove funzionalità ma è probabilmente l'unica versione per molto tempo che combinerà queste due API nello stesso assembly. Questo CTP è morto. Le nuove funzionalità di base verranno spostate in .NET 4.5 e l'API di DbContext verrà comunque spedita come pacchetto NuGet separato contenente EntityFramework.dll. Tutto è descritto here.

Le migrazioni di codice dipendono da EFv4.1 Update 1 e EntityFramework.dll. Non sono compatibili con il CTP di giugno e sono descritti direttamente nelle loro note di installazione o prerequisites = non è possibile utilizzarli con il CTP di giugno.

+0

Capito, grazie. –

+0

Una buona spiegazione, quando aggiungo EF 4.3, aggiunge solo la DLL EF e l'entity.dll non viene aggiornato. posso usare le nuove funzionalità o no? il progetto viene compilato senza EF.dll – Dani

+1

Se il progetto viene compilato senza EntityFramework.dll significa che non lo utilizza. –

Problemi correlati