如何解决:提供者未返回ProviderManifestToken字符串?

时间:2018-12-27 16:43:31

标签: c# mysql asp.net

我使用.NET Framework 4.7,ASP.NET Web窗体模板和身份验证模式单个用户帐户创建了 ASP.NET Web应用程序(.NET Framework)


我的连接字符串

<add name="DefaultConnection" connectionString="server=mysql server;password=password;port=3306;uid=username;database=schemaname" providerName="MySql.Data.MySqlClient"/>

(其中填充了正确的值,但我不想发布它们...)
实体框架

  <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" />
    </providers>
</entityFramework>

错误

  

System.InvalidOperationException:'实体框架提供程序类型   'MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6'   在ADO.NET提供程序的应用程序配置文件中注册   无法加载名称不变的'MySql.Data.MySqlClient'。使   确保使用了程序集限定名称,并且该程序集是   对正在运行的应用程序可用。看到   http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。'

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
     public ApplicationDbContext()
        : base("DefaultConnection", throwIfV1Schema: false)//<-- this line
     {
     }

     public static ApplicationDbContext Create()
     {
         return new ApplicationDbContext();
     }
}

我已经阅读了以下内容:

当我修复错误后,修复后又出现了另一个错误,依此类推,所以我创建了一个新的项目,上面的设置如此,希望我能帮助我解决这个问题。 (这是我第一次使用ASP.NET Web窗体)

1 个答案:

答案 0 :(得分:4)

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

这两个库不兼容。适用于v8.x的Oracle renamed the packageMySql.Data.EntityFramework。您需要卸载MySql.Data.Entity并安装MySql.Data.EntityFramework