entity-framework-core - 用于 cosmos 查询的不区分大小写的 ORDER BY
问题描述
这个问题与Can I use Order By and ToLower to perform a case-insensitive string sort on DocumentDB? 但自从 5 年前有人问过这个问题后,我想我会再次提出这个问题。
对于我的情况,我有通过 EFCore 创建的模型,并且排序是动态应用的。如果没有比上面建议的答案更好的解决方案,我很高兴在普通字段旁边有一个小写字段站点,只要该字段可以设置为 EF 插入/更新操作的一部分而无需添加新字段和值转换器模型对象。
有人知道更好的方法吗?
解决方案
没有用于不区分大小写的排序的内置机制 - 正如其他答案所暗示的那样,您需要存储标准化的内容内容版本(全部大写或全部小写,用于排序目的)。
但是:为了在查询中进行匹配,Cosmos DB 现在具有不区分大小写的字符串函数,例如StringEquals()
. 因此,您现在可以执行以下操作:
SELECT c.id
FROM c
WHERE StringEquals(c.SomeProperty, "someValue", true)
第三个参数(布尔值)设置为true
,提供不区分大小写的比较。
您可能需要做一些基准测试来比较区分大小写的查询的性能,以便您决定这是否适合您。
还有StartsWith()
, EndsWith()
, 和Contains()
支持不区分大小写的匹配。
推荐阅读
- python - 如何使用python和notepad++从csv文件中提取特定数据并插入mysql数据库
- python - 来自matlab的python编码
- html - 输入框中的多个图像(Google 搜索栏)
- amazon-web-services - 在 AWS Code Build 中使用 Selenium Web 驱动程序进行浏览器自动化测试
- python - 逐个字符拆分python bytearray
- java - 为什么我无法通过蓝牙 android 连接到设备?
- c# - 如何在 C# 中提交表单时在同一页面上显示 SQL 数据表?
- html - 如何将按钮添加到 html 表格单元格?
- amazon-web-services - 当 Amazon EC2 运行并通过“2/2 检查”时,ssh 没有响应
- python - 我们如何计算分页的长度