How to fix Column 'InvariantName' is constrained to be unique 解决办法!

Introduction

When you build a web project that uses Enterprise Library Community for the Application Data Block and the MySQL .NET / Connector, VisualStudio throws the error  "Column ‘InvariantName‘ is constrained to be unique. Value ‘MySql.Data.MySqlClient‘ is already present", but you added it only once.

Is very simple to fix, you need to add "<remove invariant="MySql.Data.MySqlClient"></remove>" to the start of system.data > DbProviderFactories node.

Background

You can be confused if you used XML transform for Web.Config, Web.Debug.Config or Web.Release.Config.

But you shouldn‘t focus in that. The problem is the provider‘s installation put in machine.config the childNode<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" and normally you put the same manually in your web.config file. So at the compiling time, when web.config heritates maching.config, it results in duplicate "add" child with the same invariant attribute, with the value "MySql.Data.MySqlClient" .

The examples of use around Internet and the tutorials of ELContrib Application Data Block add the DbProviderFactories node to System.Data element. It suposes that the MySQL .NET/Connector aren‘t installed in system. It suposes the mysql.data.dll is referenced in any directory and the configuration isn‘t heritated frommachine.config.

Using the code

Your XML block must be like this to solve the problem:

Hide   Copy Code

  <system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient"></remove>
      <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.4.0, Culture=neutral" />
    </DbProviderFactories>
  </system.data> 

Remember to add <remove invariant="MySql.Data.MySqlClient"></remove> at the start of DbProviderFactories.

How to fix Column 'InvariantName' is constrained to be unique 解决办法!

时间: 2024-10-26 00:00:01

How to fix Column 'InvariantName' is constrained to be unique 解决办法!的相关文章

Cannot convert value &#39;0000-00-00 00:00:00&#39; from column 1 to TIMESTAMP解决办法

在Mysql数据库中使用DATETIME类型来存储时间,使用JDBC中读取这个字段的时候,应该使用 ResultSet.getTimestamp(),这样会得到一个java.sql.Timestamp类型的数据.在这里既不能使用 ResultSet.getDate(),也不能使用ResultSet.getTime(),因为前者不包括time数据,后者不包括date数据. 但是在使用ResultSet.getTimestamp()时也不是完全安全的,例如,当数据库中的TIMESTAMP类型的字段值

java.sql.SQLException: Unknown type &#39;246 in column 0 of 1 in binary-encoded result set的解决办法

最近在大学毕设项目基础上新增一些功能,基于Struts2开源框架,数据库采用的是MySQL.写完后台的新功能代码,单元测试也顺利通过,去整合前台,但是当使用JSP页面操作的时候,没想到报异常了.截图如下: java.sql.SQLException: Unknown type '246 in column 2 of 4 in binary-encoded result set. 纳闷了,为什么能够通过JUnit呢? 几经查找,都说是MySQL的bug,更换了MySQL新版本的驱动包,比如mysq

Python2爬虫获取的数据存储到MySQL中时报错&quot;Incorrect string value: &#39;\\xE6\\x96\\xB0\\xE9\\x97\\xBB&#39; for column &#39;new&#39; at row 1&quot;的解决办法

由于一直使用python3进行编码,在使用Python2时,将爬虫数据连接数据库进行存储时,出现如上的报错,经查资料 是数据库编码问题. 如下转自:http://www.cnblogs.com/liuzhixin/p/6274821.html 的博客,在此感谢博主的慷慨分享之情. 错误原因:我们可以看到错误提示中的字符0xF0 0x9F 0x98 0x84 ,这对应UTF-8编码格式中的4字节编码(UTF-8编码规范).正常的汉字一般不会超过3个字节,为什么为出现4个字节呢?实际上是它对应的是智

使flex-direction: column的子元素height: 100%生效的办法

在flex-direction: column子元素里直接使用height:100%,height并不会被设置成100% <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0&

Unknown column &#39;user_uid&#39; in &#39;field list&#39; sql错误解决过程

在idea中运行一直有错,找了好多个地方都找不到,以为是我的字段名字写错了,然而都是对的. 把错误的这个字段删了再打一遍就好了, Unknown column 'user_uid' in 'field list' sql错误解决过程 原文地址:https://www.cnblogs.com/zxrxzw/p/10630164.html

user.table.column, table.column 或列说明无效----解决办法

这个问题造成的原因是因为用了不该用的字段名或oracle的关键字 这时候即使你想改名或删除这个字段都发现一直报这个错 解决方法: 在你想删除或更新的字段上加上双引号进行操作就不会报错,这样可以删掉重来或者修改 如:alert table tablename drop column "ORDER"; 原文地址:http://blog.51cto.com/3126597/2087295

关于mysql 出现 1264 Out of range value for column 错误的解决办法

今天给客服恢复mysql数据的时候.本来测试好的数据.但是到了客户那里却死活不干活了.老报错! 1 INSERT INTO ka_tan4 set num='716641385999', username='admin',adddate='1353078270',rate='2',sum_m='500',tjrenid='1259' 时出现错误: 1 #1264 - Out of range value adjusted for column 'num' at row 1 原因:新版本的MySQ

for column &quot;xxx&quot; at row 1错误解决办法

错误原因以及解决办法: 1.表里的这个字段的数据太长 办法:把字段名称的长度改长点 2.字符集或排序规则不正确,这个错误一般是你字段里要存中文汉字造成的: 办法:一般我们是我们数据库的字符集是utf-8 而你看你表中的字段的字符集是不是armscii8或其他,是的话字符集改成utf8mb4,排序规则改成utf8mb4_general_ci 3.上面2个无效试试这个 找到mysql的安装目录,把文件my.ini里的"default-character-set=utf8"修改为"

ERROR 1406 : Data too long for column 解决办法

解决办法: 在my.ini里找到 sql-mode=”STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION” 把其中的STRICT_TRANS_TABLES,去掉, 或者把sql-mode=STRICT_TRANS_TABLES,NO_AUTO_Create_USER,NO_ENGINE_SUBSTITUTION 注释掉,然后重启mysql就ok了