【问题标题】:How to fix: The provider did not return a ProviderManifestToken string? [duplicate]如何解决:提供者没有返回 ProviderManifestToken 字符串? [复制]
【发布时间】:2019-05-25 16:05:25
【问题描述】:

我使用 .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 窗体)

【问题讨论】:

    标签: c# mysql asp.net


    【解决方案1】:

    您似乎正在使用 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 2018-06-29
      • 2013-09-28
      • 2012-08-08
      • 1970-01-01
      • 2011-07-22
      • 1970-01-01
      相关资源
      最近更新 更多