一尘不染

找不到“ MySql.Data.MySqlClient” ADO.NET提供程序的实体框架提供程序

mysql

我正在尝试将Entity Framework与MySQL配合使用,但出现上述错误。我安装了最新的MySQL连接器。

完整错误为:

No Entity Framework provider found for 'MySql.Data.MySqlClient' ADO.NET provider. Make sure the provider is registered in the 'entityFramework' section of the application config file.

但是,我找不到任何建议说明您如何在“ entityFramework”部分中进行注册的内容。

其他一些帖子(例如)建议将提供程序添加到该system.Data DbProviderFactories部分中,如下所示:

<DbProviderFactories>
  <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.2.3.0, Culture=neutral, 
    PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>

但这不起作用,因为它声称invariant名称是重复的。而且,如果我实际上遍历了,System.Data.Common.DbProviderFactories我可以看到最后一个是MySQL提供程序:

MySQL Data Provider
.Net Framework Data Provider for MySQL
MySql.Data.MySqlClient
MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.6.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d

因此提供者在那里,但是EF拒绝使用它。有任何想法吗?

我的完整配置如下所示:

<configuration>
    <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </configSections>

   <system.data>
   <!--<DbProviderFactories>
   <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.2.3.0, Culture=neutral, 
    PublicKeyToken=c5687fc88969c44d" />
   </DbProviderFactories>-->
</system.data>

<connectionStrings>
    <add name="myContext" connectionString="server=****;User Id=****;password=****;Persist Security Info=True;database=myDb"
  providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>

</entityFramework>

</configuration>

阅读 379

收藏
2020-05-17

共1个答案

一尘不染

没关系。我注意到我已经安装了EF 6。我将其删除,然后尝试使用EF 5(NuGet表示它是最新的稳定版本),并且开始工作。

尽管如此,一条更有用的错误消息还是不错的!

2020-05-17