2012-07-21 7 views
10

Desidero aggiornare la mia app all'EF 5 per sfruttare funzionalità come il supporto per enum spazial, ecc. Tuttavia, non sono stato in grado di eseguire l'aggiornamento a meno che non si passi a .Net 4.5.Esistono motivi tecnici per cui EF 5 non è completamente supportato su .NET4.0?

Mi piacerebbe sapere quali caratteristiche di .Net 4.5 EF 5 usa che non può essere fatto in .Net 4.0?

+0

Spero che il titolo aggiornato lo rende una domanda "costruttivo". Tuttavia, anche se una cosa è * tecnicamente * fattibile, potrebbe non essere * praticamente * fattibile per supportare più obiettivi (immagina se usa solo * una * nuova "convenienza" 4.5 chiamate API), specialmente quando si cerca di promuovere l'ultima e -grandemente .. anche, passando da .NET4.0 a .NET4.5 non è una modifica "CLR-breaking", come era da .NET3.5 a .NET4 (o .NET1.1 a .NET2). –

+0

Un esempio immediato: il supporto di 2 framework raddoppia immediatamente i test richiesti (tutto deve essere testato su ogni framework), ** anche se ** non si è a conoscenza di problemi tecnici. –

+2

[È possibile installare EF5 per .NET4.0 via NuGet] (http://nuget.org/packages/entityframework), ma probabilmente non si otterranno tutte le funzionalità. –

risposta

15

mia comprensione è che EF> = 4.1 (tra cui EF 5) è costituito da

  • le "librerie di base" EF come (System.Data.Entity.dll), che fanno parte del .NET Framework
  • il pacchetto aggiuntivo/il montaggio è possibile scaricare tramite Nuget che contiene il DbContext API e il codice-First sviluppo

C'erano piani e un tentativo nell'estate 2011 (la Entity Framework June 2011 CTP) per rilasciare il enum, Spatia l supporto e altre nuove funzionalità (eccetto Code-First Migrations) come aggiornamento delle librerie di base prima della pubblicazione di .NET 4.5. Ma il team EF ha deciso che tali aggiornamenti fuori banda sono possibili per il pacchetto NuGet (ecco perché EF 4.3 ha già la funzione Migrazioni che non ha bisogno di toccare le librerie principali), ma anche per le librerie di base sono troppo difficile e non può essere fatto prima di .NET 4.5 release:

ci sono due parti logiche di Entity Framework, i componenti di base forniti all'interno del .NET Framework e Visual Studio e la 'fuori banda 'componenti che possiamo aggiornare su un programma molto più frequente . Stiamo attualmente valutando come aggiornare i componenti principali con cadenza più frequente. Il 'EF giugno 2011 CTP' è stato il nostro primo tentativo di spedizione dei componenti principali più frequentemente ed è diventato chiaro che non siamo tecnicamente pronti a fare ancora questo.

I componenti principali sono:

  • Nucleo EF Runtime (System.Data.Entity.dll & System.Web.Entity.dll)
  • EF Designer

Fuori componenti della band includere : (Probabilmente spediremo di più dai componenti della banda in futuro)

  • L'API DbContext & primo codice (EntityFramework.dll)
  • modelli T4 per l'utilizzo di API con DbContext Modello First & Database Prima
  • EF Power Tools
  • Codice prime migrazioni

(citazione da

Ciò significa che il supporto di enum per EF farà parte delle librerie di base .NET 4.5 e non del pacchetto EF 5 NuGet scaricabile. Quindi le nuove funzionalità EF come enum e il supporto spaziale non sono disponibili insieme a .NET 4.0.

di più sulla storia e la ragione di separare "librerie EF Core" dal "pacchetto EF NuGet" è qui: http://blogs.msdn.com/b/adonet/archive/2011/10/18/how-we-talk-about-ef-and-its-future-versions.aspx

+0

Quindi quello che ho capito è che il team voleva che le prime librerie non in codice fossero in grado di sfruttare enum, supporto spaziale, ecc. In tal caso, rilasciando un SP che aggiornerebbe VS 2010 sarebbe stata un'opzione più economica. Costringere i progetti a passare a .Net 4.5 e lì chiedendo agli sviluppatori di passare a VS 2012 nell'arco di soli 2 anni senza grandi cambiamenti in runtime è come correre dietro ai soldi. So che VS 2012 è un prodotto molto migliore. :) Spero solo che riducano drasticamente il prezzo dell'aggiornamento VS 2012. Ma sono felice che andando avanti, ASP.Net ed EF stanno diventando open source. – Hemant

+0

@Hemant Almeno non è come la "funzione" auto-up dei progetti MSTest .. vuoi un test .NET35 in VS2010? :( –

+0

@Hemant: ho trovato altre citazioni e risorse e incluso nella mia risposta, ma nulla di veramente nuovo lì. – Slauma

Problemi correlati