有没有办法让 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(不区分大小写)。