有没有办法让 DbSet.AddOrUpdate 区分大小写?
Is there a way to make DbSet.AddOrUpdate case sensitive?
我有一个数据集(如下所示),当 考虑区分大小写 -
时,每个记录在两个字段上都是唯一的
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'
时会 return 两条记录
问题 - 有没有办法让 DbSet.AddOrUpdate 区分大小写?
PS: 数据集来自外部源,所以我无法调整它以保持不变。例如,将城市更改为大写并且不允许忽略重复项。
您需要将数据库设置为区分大小写。目前它是 CI(不区分大小写)。
我有一个数据集(如下所示),当 考虑区分大小写 -
时,每个记录在两个字段上都是唯一的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: 数据集来自外部源,所以我无法调整它以保持不变。例如,将城市更改为大写并且不允许忽略重复项。
您需要将数据库设置为区分大小写。目前它是 CI(不区分大小写)。