C# 值为'时违反主键;不一样
我的数据库中有以下数据: 注意光标的位置,因此字段在单词后面有一些空格。然后我调用以下代码来插入一个新值:C# 值为'时违反主键;不一样,c#,sql-server,entity-framework,tsql,C#,Sql Server,Entity Framework,Tsql,我的数据库中有以下数据: 注意光标的位置,因此字段在单词后面有一些空格。然后我调用以下代码来插入一个新值: var tagList = new List<ProductTag> { new ProductTag { Name = "diepvries" } }; var sbCopy = new SqlBulkCopy(_dataContext.Database.Connection.ConnectionString) { BulkCopyTimeout = 60 * 10 }
var tagList = new List<ProductTag> { new ProductTag { Name = "diepvries" } };
var sbCopy = new SqlBulkCopy(_dataContext.Database.Connection.ConnectionString) { BulkCopyTimeout = 60 * 10 };
sbCopy.WriteToServer(tagList.AsDataReader());
var tagList=newlist{new ProductTag{Name=“diepvries”};
var sbCopy=newsqlbulkcopy(_dataContext.Database.Connection.ConnectionString){BulkCopyTimeout=60*10};
sbCopy.WriteToServer(tagList.AsDataReader());
但是,会引发以下异常
违反主键约束“PK_dbo.ProductTags”。不能
在对象“dbo.ProductTags”中插入重复键。复制钥匙
值为(diepvries)
我还用文本“diepvries2”进行了测试,结果很有效。我做错了什么?根据
“SQL Server遵循ANSI/ISO SQL-92规范(第8.2节,
,关于如何比较字符串的一般规则#3)
带空格。ANSI标准要求字符填充
用于比较的字符串,以便它们的长度在比较之前匹配
比较它们。”
什么样的数据库?
我知道在SQL server中,字符串在比较之前用空格“填充”到相同的长度。因此,就SQL数据库而言,您的两个字符串是相同的。
详细信息是。为您当前的情况添加一点背景信息。“Diepvries”等于“Diepvries”