2016-07-19 202 views
8

Ho una soluzione asp.net che utilizza l'entità framework 6 sul server mysql.Il provider ADO.NET con nome invariabile "MySql.Data.MySqlClient" non è registrato nel file di configurazione della macchina o dell'applicazione

ora devo lavorare su questa soluzione su una nuova macchina,
ma ho qualche problema:
1) quando si costruisce la soluzione ottengo l'errore: "Il provider ADO.NET con nome invariante 'MySql. Data.MySqlClient 'non è registrato nel file di configurazione della macchina o dell'applicazione ".

error screenshot

App.config:

<entityFramework> 
    <providers> 
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider> 
    </providers> 
</entityFramework> 
<system.data> 
    <DbProviderFactories> 
    <remove invariant="MySql.Data.MySqlClient" /> 
    <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" /> 
    </DbProviderFactories> 
</system.data> 

2) durante l'apertura del file model.edmx ricevo un messaggio:
"il designer modalità soggetto è in grado di visualizzare il file richiesto" .

error screenshot

Ho installato sulla macchina:

1) Connettore mysql/net 6.9.9
2) mysql per Visual Studio 1.2.6
3) Connettore mysql ODBC 5.3. 6.

cosa posso fare?

risposta

1

Rimuovere il vecchio riferimento di MySql.Data.Entity.EF6 dall'elenco di riferimenti. Reinstallare tramite Nuget Package manager e funzionerà/

+0

ho provato un sacco di volte, ma ancora fatto non funziona. – Ariela

5

Non avevo alcun connettore MySql installato sulla mia macchina. è stato risolto con l'installazione di NuGet: MySql.ConnectorNET.Entity

enter image description here

5

Ho seguito la maggior parte delle soluzioni proposte in internet, ma per tutti sono stati dispiace falliti. Il problema si verifica perché manca lo studio visivo per il connettore MySql e l'ho risolto installando mysql-connector-net-7.0.4 (https://downloads.mysql.com/archives/c-net/)

+0

Sto usando VS 2015 con un'applicazione greenfield MVC 5. Ho provato tutto il resto, ma ancora non riuscivo a visualizzare l'edmx. Questa è stata l'ultima cosa che ho provato dopo giorni di tentativi di attivazione e disattivazione per risolvere il problema. Questo ha fatto il trucco. Non appena l'MSI ha completato l'interfaccia grafica edmx, prende vita. Grazie mille! – Krafty

+0

Ogni volta, prego. :) – iQalalwa

+0

@iQalalwa cosa fare dopo l'installazione? Quali passi dovrei prendere ora? –

3

Le soluzioni di cui sopra non hanno funzionato per me.Tuttavia, ispirato da this answer, ero in grado di risolvere questo problema rimuovendo le informazioni sulla versione sotto il tag entityFramework nel mio Web.config di file:

<entityFramework> 
     <defaultConnectionFactory 
     type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> 
     <providers> 
     <provider invariantName="MySql.Data.MySqlClient" 
     type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"> 
     </provider> 
     </providers> 
    </entityFramework> 

diventa:

<entityFramework> 
     <defaultConnectionFactory 
     type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" /> 
     <providers> 
     <provider invariantName="MySql.Data.MySqlClient" 
     type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"> 
     </provider> 
     </providers> 
    </entityFramework> 

ETA: Come sottolineato in this follow-up esso potrebbe anche essere necessario modificare manualmente la versione di MySql.Data nel file Web.config:

<dependentAssembly> 
    <assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" /> 
    <bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" /> 
</dependentAssembly> 
2

Per risolvere questo problema, oltre alle variazioni di cui al this post, ho anche dovuto modificare manualmente la versione di MySql.Data in web.config in questo modo:

<dependentAssembly> 
    <assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" /> 
    <bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" /> 
</dependentAssembly> 
+0

Perché questo non si aggiorna automaticamente quando installi v6.9.9? Questo ha risolto il mio problema. Buona pesca. –