实体框架到MySql连接失败了数据库

Dhi*_*ane 1 c# mysql asp.net-mvc entity-framework-6

我使用Entity Framework 6连接到mysql数据库时遇到错误

访问数据库时出错.这通常意味着与数据库的连接失败.检查连接字符串是否正确,以及是否使用了相应的DbContext构造函数来指定它或在应用程序的配置文件中找到它.

这是我的代码:

public class TestDbContext : DbContext
{
    public TestDbContext()
       : base("name="mysqldb")
    {

    }
    public DbSet<holidays> holidays { get; set; }
}


<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />   </configSections>

<connectionStrings>
<add name="mysqldb" providerName="MySql.Data.MySqlClient" connectionString="server=localhost;userid=root;password=admin;database=bobdata;/> </connectionStrings>

<entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
    </providers>
  </entityFramework>
Run Code Online (Sandbox Code Playgroud)

在给出的消​​息下面的内部异常

{"通过方法'MySql.Data.MySqlClient.MySqlProviderServices.GetDbProviderManifestToken(System.Data.Common.DbConnection)'尝试访问方法'MySql.Data.MySqlClient.MySqlConnection.get_Settings()'失败."}

Bra*_*ger 11

您似乎正在使用MySql.Data.Entity 6.10.7.我猜你也在使用MySql.Data 8.0.11.

这两个库不兼容.甲骨文改名包,以MySql.Data.EntityFramework供v8.x. 您需要卸载MySql.Data.Entity并安装MySql.Data.EntityFramework.