如何在Azure DocumentDb中搜索小写?

时间:2016-09-16 05:05:22

标签: c# azure-cosmosdb

我想搜索documentdb的ID以及包含,开头和结尾,但是当我尝试创建小写搜索时。

await this.noSqlDataContext.GetDocumentsAsync<Index>(e => e.Id.ToLowerInvariant().Equals(key.ToLowerInvariant()));

我收到了这个错误:

"exceptionMessage": "Method 'ToLowerInvariant' is not supported.\r\nActivityId: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx",

3 个答案:

答案 0 :(得分:2)

我通过查看Azure DocumentDb文档here解决了这个问题。 使用以下代码进行比较:

e => e.Id.ToLower() == key.ToLower()

答案 1 :(得分:0)

如果Id和key的类型为字符串,则可以按如下方式更改lambda表达式:

(e => String.Compare(e.Id, key, true) == 0)

如果为true,则将比较设置为忽略所有字符大小写。

答案 2 :(得分:-1)

根据你的评论,如果你只想在忽略大小写的情况下进行比较,你可以简单地做:

(e => string.Compare(e.Id, key, StringComparison.OrdinalIgnoreCase) == 0)

查看示例代码here