【发布时间】: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'时会返回两条记录
问题 - 有没有办法让 DbSet.AddOrUpdate 区分大小写?
PS:数据集来自外部来源,因此我无法对其进行调整以使其持久存在。例如,将 City 更改为 UPPER CASE 并忽略重复项是不允许的。
【问题讨论】:
-
你的数据库的排序规则是什么?
-
啊!我的数据库的排序规则是 'Latin1_General_CI_AS'
标签: c# .net entity-framework entity-framework-5 dbset