Asp.Net EF访问Mysql数据库报错:No Entity Framework provider found for the ADO.NET provider with invariant name 'MySql.Data.MySqlClient'.

这个问题遇到好几次了,本地调试,windows服务器部署的时候都有遇到,记录一下吧。

1-首先我们EF访问mysql的时候要添加相应的ADO Provider(MySql.Data, Mysql.Data.Entity)注意nuget添加的时候,下面两个包的版本要一致,否则会报一些奇怪的错误。

  2- 在我们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.9.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>

特别注意:拷贝上面配置文件的时候一定要注意修改下Mysql.Data 的版本,和你自己的nuget版本一致,否则程序启动时会因找不到程序集而报错

 OK,完事~

原文地址:https://www.cnblogs.com/stephenzengx/p/14648475.html