Sto usando EntityFramework ma in alcuni casi ottengo questa eccezione:
threw an exception.", inner exception: "Method not found: 'Void System.Data.Entity.DbModelBuilder.RegisterEntityType(System.Type)'.
Perché sta succedendo questa eccezione?
Come ho scoperto, questa eccezione sta accadendo quando il sistema dovrebbe avere EF 6.1.3, ma l'EF referenziato è 6.0.0. Come ho aggiornato il mio EF via nuget, ha funzionato. Il problema è che in alcuni casi non riesco a trovare alcun 6.0.0
Ad esempio sto usando un componente di terze parti (XAF) che ha un designer in Visual Studio. Il progettista non può caricare a causa di questa eccezione. L'EF nel mio progetto è 6.1.3 ma non so come usi 6.0.0
Domanda 1: Perché e quando si verifica questa eccezione?
Questa eccezione probabilmente sta accadendo a causa delle diverse versioni degli assembly caricati. Se XAF referenzia la versione 6.0.0 nei suoi metadati e il tuo progetto no, il compilatore caricherà la versione 6.0.0 nella cartella bin.
Puoi provare a sovraccaricare la versione dell'assembly nel tuo file di configurazione dell'applicazione (app.config), usando qualcosa di simile a questo:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0-6.0.0" newVersion="6.1.3" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>