Recentemente ho aggiornato la nostra applicazione Webforms da EF 4.4 a EF6 e ho ottenuto così tanti errori di compilazione in termini di compilazione con i controlli Entity Datasource. Generalmente ricevo questi errori in tutte le occorrenze quando provo ad accedere all'oggetto di contesto:
e.Context
Ho seguito la stessa procedura dettagliata fornita in: http://entityframework.codeplex.com/wikipage?title=Updating%20Applications%20to%20use%20EF6
Le informazioni sull'errore visualizzate sono:
1) Modulo System.Data.Entity. version = "4.0.0.0" dovrebbe essere referenziato
2) Espressione non caso di tipo System.Data.Objects.ObjectContext per digitare ObjectContext (Dopo aver immesso esplicitamente il cast in System.Data.Entity.Core.Objects.ObjectContext)
Qualcuno può aiutare a risolvere questo problema?
Ho appena svolto questo esercizio quando eseguivo l'aggiornamento a EF 6 da EF 5 e ho avuto gli stessi errori.
Ecco cosa dovevo fare.
Install-Package Microsoft.AspNet.EntityDataSource
Registrerebbe un nuovo controllo EntityDataSource nel web.config sotto le pagine:
<pages>
<controls>
<add tagPrefix="ef" assembly="Microsoft.AspNet.EntityDataSource" namespace="Microsoft.AspNet.EntityDataSource" />
</controls>
</pages>
Il passaggio successivo consiste nel sostituire i controlli <asp:EntityDataSource />
esistenti su <ef:EntityDataSource />
nelle pagine aspx.
Il passaggio finale è quello di inserire il codice e aggiornare i riferimenti per EntityDataSourceContextCreatingEventArgs o qualsiasi altro tipo di tag EFContext.
A partire dal
protected void OnContextCreating(object sender, EntityDataSourceContextCreatingEventArgs e){... }
A
protected void OnContextCreating(object sender, Microsoft.AspNet.EntityDataSource.EntityDataSourceContextCreatingEventArgs e){... }
Funzionava tutto e non dovevo fare riferimento a System.Data.Entity nell'assembly.
Il controllo Entity DataSource per EF6 è disponibile in anteprima dal 30-01-2014 (dettagli in questo annuncio Microsoft ). È disponibile come pacchetto nuget: http://www.nuget.org/packages/Microsoft.AspNet.EntityDataSource/
Se provi a scaricarlo dal gestore di pacchetti nuget, assicurati di selezionare l'elemento "include prerelease" nella casella combinata in alto.