mysql使用EF6的问题

本文介绍了解决在App.config或Web.config文件中配置MySQL数据提供程序时出现的重复配置问题及未配置时的应用程序异常情况,并给出了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



自己的应用程序的App.config或Web.Config文件中与
系统的C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Configmachine.config文件
1.重复如下配置:

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

会抛出异常如下:

Exception is: ConfigurationErrorsException - 创建 system.data 的配置节处理程序时出错: 列“InvariantName”被约束为是唯一的。值“MySql.Data.MySqlClient”已存在

 

2.如果两者都不配置,会抛出如下异常:

Exception is: ArgumentException - Can't load DbProviderFactory for given value of providerType

 

实际当中,会碰到如下问题:

有些数据库安装出问题的话,系统的Configmachine.config文件中不会配置

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

      由于以上的不确定性,我们在自己应用程序的app/web.config文件中配置这个节点就可能会因重复配置造成异常。

 

解决方法:

在自己应用程序的app/web.config文件中添加这个节点:

      <remove invariant="MySql.Data.MySqlClient"/>节点(注意,系统自动添加的原生节点为:<remove name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" 。这个时候会出异常,必须去掉name="MySQL Data Provider",才可以)

即:

复制代码
  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient"/>
      <add name="MySQL Data Provider2" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.My SqlClient.MySqlClientFactory, MySql.Data, Version=6.5.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值