2014-11-07 8 views
5

Ho un'app MVC 5, che ha il database MySQL ospitato in Azure. Si stava lavorando tutti bene, ma oggi quando ho provato a digitare Update-Database e farlo funzionare, ho ricevuto il seguente messaggio di errore:Errore durante l'esecuzione di Update-Database in MVC5

System.Runtime.Serialization.SerializationException: Type is not resolved for member 'MySql.Data.MySqlClient.MySqlException,MySql.Data, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'. 
    at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 
    at System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force) 
    at System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 
    at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command) 
Type is not resolved for member 'MySql.Data.MySqlClient.MySqlException,MySql.Data, Version=6.9.3.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d'. 

Quale può essere il problema, e come posso risolverlo?

risposta

9

ho avuto questo problema prima:

1.- installare un aggiornamento del connettore mysql alla nuova versione: http://dev.mysql.com/downloads/connector/net/

2.- Poiché si sta tentando di connettersi a un'installazione remota di MySQL hai per assicurarsi che la porta sia aperta. Puoi provare a connetterti a un DB MySQL locale per verificarlo.

Spero che questo lavoro anche per te.

+0

Questo ha risolto il problema. Grazie! – tett

3

Solo nel caso qualcun altro imbatterci in questo "tipo non viene risolto per il membro" errore:

Questo messaggio è molto fuorviante, perché è dimostrato per molte questioni che non hanno nulla a che fare con ciò che si può supporre da questo Messaggio.

La maggior parte delle volte in cui mi sono imbattuto in questo messaggio era un codice all'interno di una classe mappata che generava un'eccezione mentre il metodo Seed era in esecuzione. Fai attenzione alle implementazioni personalizzate di ToString() e GetHashCode().

Il debugger VS è il tuo migliore amico in questo caso. Basta aggiungere il seguente codice per il metodo di Seed():

if (System.Diagnostics.Debugger.IsAttached == false) 
     System.Diagnostics.Debugger.Launch(); 

lanciare un secondo VS esempio con il progetto prima di eseguire il comando Update-Database e si dovrebbe vedere ciò che è sbagliato.

Problemi correlati