使用MySql.Data 6.7.2.0连接器注册entityFramework

时间:2013-05-27 13:20:01

标签: asp.net asp.net-mvc mono entity-framework-6 mysql.data

我尝试将我的Web项目配置为使用MySQL预发布的.net连接器,版本6.7.2.0。但是,即使我尽力配置我的项目以使用6.7.2.0版本的连接器,我仍然会收到此消息。

就像现在一样,我一直收到这个错误消息:

  

找不到'MySql.Data.MySqlClient'ADO.NET提供程序的实体框架提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分中注册。有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882

我尝试了不同的方法来配置我的Web.config文件,这是我当前的设置:

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

我已经从NuGet安装了EF6 alfa3。目前我的连接器已从this downloaded file手动安装,我尝试从NuGet存储库安装它,但结果完全相同。

2 个答案:

答案 0 :(得分:2)

除了注册ADO.NET提供程序外,还需要注册实体框架提供程序:

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

您还需要确保已针对Entity Framework 6构建了提供程序。有关详细信息,请参阅this article

答案 1 :(得分:1)

我有类似的问题。回滚到EF5和MySql Connector 5.6并且它仍然无法正常工作后,我终于找到了一个有人提到他们必须删除版本和文化参考以便让它工作的源。不知道为什么。这里:

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