LINQ-to-Entities Array.Contains 不遵守排序规则

LINQ-to-Entities Array.Contains doesn't obey collation

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

sample, şAmple, SAMPLE.

在 SQL Server Management Studio 中,如果我查询 where field = 'Sample',我会得到所有字段。在 Entity Framework 中,我有一个标记数组,例如:

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

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

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

我希望此查询 return 来自数据库的所有 "samples",但它不匹配。为什么?

进一步调查发现不是EF的问题,返回的结果是正确的,原来是我自己编程的问题。