如何在 Azure DocumentDb 中搜索小写字母?
How can i search lowercase in Azure DocumentDb?
我想搜索 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",
如果 Id 和 key 是字符串类型,您可以按如下方式更改您的 lambda 表达式:
(e => String.Compare(e.Id, key, true) == 0)
其中 true 设置比较忽略所有字符大小写。
根据您的评论,如果您只是想在忽略大小写的情况下进行比较,您可以简单地这样做:
(e => string.Compare(e.Id, key, StringComparison.OrdinalIgnoreCase) == 0)
查看示例代码here
我通过查看 Azure DocumentDb 文档解决了这个问题 here。
使用以下代码进行比较:
e => e.Id.ToLower() == key.ToLower()
我想搜索 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",
如果 Id 和 key 是字符串类型,您可以按如下方式更改您的 lambda 表达式:
(e => String.Compare(e.Id, key, true) == 0)
其中 true 设置比较忽略所有字符大小写。
根据您的评论,如果您只是想在忽略大小写的情况下进行比较,您可以简单地这样做:
(e => string.Compare(e.Id, key, StringComparison.OrdinalIgnoreCase) == 0)
查看示例代码here
我通过查看 Azure DocumentDb 文档解决了这个问题 here。 使用以下代码进行比较:
e => e.Id.ToLower() == key.ToLower()