【问题标题】:LINQ-to-Entities Array.Contains doesn't obey collationLINQ-to-Entities Array.Contains 不服从排序规则
【发布时间】:2016-05-30 13:14:41
【问题描述】:

我在 SQL Azure 列上有一个不区分大小写和不区分重音的排序规则。例如,我有这些字段:

sample, şAmple, SAMPLE.

在 SQL Server Management Studio 中,如果我查询 where field = 'Sample',我会得到所有字段。在实体框架中,我有一个令牌数组,例如:

var array = new string[]{ "sampLe", "somethingelse", "anotherhing"] };

我正在尝试在我的数据库中搜索与此数组中的项目匹配的任何字段。数组不是一个大数组,它通常只包含一项,最坏的情况下是五项。我正在使用:

var existingTags = await db.Tags.Where(x => array.Contains(x.Tag)).ToListAsync();

我希望这个查询能够返回数据库中的所有“样本”,但它不匹配。为什么?

【问题讨论】:

  • 您使用的是什么版本的 EF?你能发布为查询生成的 SQL 吗?

标签: c# linq linq-to-entities azure-sql-database collation


【解决方案1】:

由于我进一步调查了该问题,这不是 EF 问题,返回的结果实际上是正确的,结果证明是我自己的编程问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多