首页 > 解决方案 > Mysql 实体框架异常

问题描述

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.MySqlProviderServices, 
           MySql.Data.EntityFramework, Version=8.0.12.0, Culture=neutral, 
           PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
</system.data>
<connectionStrings>
    <add name="DefaultConnection" 
       connectionString="server=localhost;user=root;database=app;password=root;" 
       providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<providers>
      <provider invariantName="MySql.Data.MySqlClient" 
                type="MySql.Data.MySqlClient.MySqlProviderServices, 
                MySql.Data.EntityFramework, Version=8.0.12, Culture=neutral, 
                PublicKeyToken=c5687fc88969c44d"/>
</providers>

连接数据库时,出现如下异常: The requested .Net Framework Data Provider's implementation does not have an Instance field of a System.Data.Common.DbProviderFactory derived type.

标签: c#mysqlentity-framework

解决方案


中的配置信息<DbProviderFactories>不正确。根据MySQL Connector/NET 文档,它应该是:

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

推荐阅读