2

我无法让 asp.net mvc5 身份与 mysql 一起使用。这是 web.config 部分。可能是因为 EF6 不能与 mvc5 一起使用吗?

<system.data>
    <DbProviderFactories>
      <remove name="MySQL Data Provider"/>

      <add name="MySQL Data Provider"
          invariant="MySql.Data.MySqlClient"
          description=".Net Framework Data Provider for MySQL"
          type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>

entityFramework>
    <defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
      <providers>
        <provider invariantName="MySql.Data.MySqlClient"
                  type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
      </providers>


  </entityFramework>

错误是:

附加信息:实体框架提供程序类型“MySql.Data.MySqlClient.MySqlProviderServices、MySql.Data.Entity、Version=6.7.4.0、Culture=neutral、PublicKeyToken=c5687fc88969c44d”的“Instance”成员未返回继承的对象来自“System.Data.Entity.Core.Common.DbProviderServices”。实体框架提供者必须从此类继承,并且“实例”成员必须返回提供者的单例实例。这可能是因为提供程序不支持 Entity Framework 6 或更高版本

4

4 回答 4

1

那是因为您引用的是 EF 6,而 MySQL 连接器仍然不支持 EF6。您可以降级到 EF 5 或获取 MySQL 连接器 Alpha。

执行此操作(保留您刚刚粘贴的内容的副本):

  1. 删除对 EF6 的所有引用
  2. 从 Nuget 获取 EF 5(打开 NuGet 控制台并输入 Install-Package EntityFramework -Version 5.0.0 )
  3. 重新生成你的实体
  4. 确保你得到<DbProviderFactories><providers>部分就像你一样。
于 2013-11-02T02:52:51.073 回答
0

您还可以使用 MySQL ASP.NET Identity 2.1 提供程序的完成实现,该提供程序使用 ADO.NET 与 MySQL 进行通信。它以 NuGet 包的形式提供,您可以在此博客文章中阅读更多信息: ASP.NET Identity 2.1 implementation for MySQL

于 2015-01-23T10:56:00.393 回答
0

我遇到了MySql.Data.Entity.EF6 NuGet 包,它应该可以解决您的问题。我发现我必须完全删除对 MySql 和 EF 的所有引用,然后才能使其正常工作(包括所有 web.config 引用)。该软件包依赖于 EF6,因此将作为软件包安装过程的一部分进行安装。

于 2014-02-08T22:45:29.830 回答
0

在按照 David 的建议进行操作后,查看所有 App.config 文件并确保所有 depdentAssembly 设置看起来像这样。

  <dependentAssembly>
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>

重要的部分是绑定重定向。

于 2013-11-18T05:39:03.373 回答