有没有办法让 DbSet.AddOrUpdate 区分大小写?
Posted
技术标签:
【中文标题】有没有办法让 DbSet.AddOrUpdate 区分大小写?【英文标题】:Is there a way to make DbSet.AddOrUpdate case sensitive? 【发布时间】:2017-01-20 12:50:45 【问题描述】:我有一个数据集(如下所示),当考虑区分大小写时,每条记录在两个字段上都是唯一的 -
var dataSet1 = new DataSet() Country = "UK", City = "London", ...
var dataSet1 = new DataSet() Country = "UK", City = "LONDON", ...
如下执行DBSet.AddOrUpdate
() -
database.DataSets.AddOrUpdate(ds => new
ds.Country,
ds.City,
, dataList.ToArray());
database.SaveChanges();
我收到System.InvalidOperationException: Sequence contains more than one element
这个异常的原因很明显,查询City = 'London'
时会返回两条记录
问题 -
PS:数据集来自外部来源,因此我无法对其进行调整以使其持久存在。例如,将 City 更改为 UPPER CASE 并忽略重复项是不允许的。
【问题讨论】:
你的数据库的排序规则是什么? 啊!我的数据库的排序规则是 'Latin1_General_CI_AS' 【参考方案1】:您需要将数据库设置为区分大小写。目前是 CI(不区分大小写)。
【讨论】:
以上是关于有没有办法让 DbSet.AddOrUpdate 区分大小写?的主要内容,如果未能解决你的问题,请参考以下文章