在MVC5中运行Update-Database时出错

时间:2014-11-07 17:28:26

标签: c# mysql asp.net-mvc entity-framework azure

我有一个MVC 5应用程序,它在Azure中托管了MySQL数据库。它运行良好,但今天当我尝试键入Update-Database并运行它时,我收到以下错误消息:

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'.

可能是什么问题,我该如何解决?

2 个答案:

答案 0 :(得分:9)

之前我遇到过这个问题:

1.-将mysql连接器的更新安装到新版本:http://dev.mysql.com/downloads/connector/net/

2.-因为您尝试连接到MySQL的远程安装,您必须确保端口是打开的。您可以尝试连接到本地MySQL数据库以验证这一点。

我希望这也适合你。

答案 1 :(得分:3)

以防其他人偶然发现这个“类型未解析成员”错误:

此消息非常具有误导性,因为它显示的许多问题与您从此消息中可能假设的内容无关。

大部分时间我都遇到这个消息,它是映射类中的一些代码,在Seed方法执行时抛出异常。注意自定义ToString()和GetHashCode()实现。

在这种情况下,VS调试器是你最好的朋友。只需将以下代码添加到Seed()方法中:

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

在运行Update-Database命令之前,使用您的项目启动第二个VS实例,您应该看到错误。