【问题标题】:Is there a way to make DbSet.AddOrUpdate case sensitive?有没有办法让 DbSet.AddOrUpdate 区分大小写?
【发布时间】: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


【解决方案1】:

您需要将数据库设置为区分大小写。目前是 CI(不区分大小写)。

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 2014-06-10
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多