C# Cosmos DB不尊重查询中的Json.Net CamelCaseNamingStrategy

C# Cosmos DB不尊重查询中的Json.Net CamelCaseNamingStrategy,c#,json,linq,json.net,azure-cosmosdb,C#,Json,Linq,Json.net,Azure Cosmosdb,我正在.Net中为Cosmos DB创建一个存储库,为了保持干燥并避免用[JsonProperty(PropertyName=“thePropertyName”)]装饰每个类属性,我已经用[JsonObject(NamingStrategyType=typeof(CamelCaseNamingStrategy))]装饰了我的类 CreateDocumentAsync(例如)使用属性的驼峰大小写名称以JSON格式正确序列化我的Cosmos DB文档。到目前为止还不错 然而,我的问题是,当我通过LI

我正在.Net中为Cosmos DB创建一个存储库,为了保持干燥并避免用
[JsonProperty(PropertyName=“thePropertyName”)]
装饰每个类属性,我已经用
[JsonObject(NamingStrategyType=typeof(CamelCaseNamingStrategy))]装饰了我的类

CreateDocumentAsync
(例如)使用属性的驼峰大小写名称以JSON格式正确序列化我的Cosmos DB文档。到目前为止还不错

然而,我的问题是,当我通过LINQ查询Cosmos DB时,它为查询Cosmos DB而生成的SQL不遵守装饰类的
[JsonObject(NamingStrategyType=typeof(CamelCaseNamingStrategy))]
属性,因此不会返回任何文档。这是因为Cosmos DB查询对字段/属性名称区分大小写。例如,以下结果不同(注意名称上的大小写差异):

vs

我通过检查由
CreateDocumentQuery
生成的查询SQL来确认这一点,并寻找允许我在
SqlQuerySpec
中指示属性名称大小写的选项,但没有成功

因此,我的问题是:是否有人知道如何在Cosmos Db中使用类定义的驼峰大小写策略进行LINQ查询,而不必通过
[JsonProperty(PropertyName=“thePropertyName”)]
手动设置每个属性


提前感谢您的帮助。

目前不可能。看


我发现通过属性设置它非常危险,而且是一个错误

布莱恩,谢谢你的编排。我的第一个问题,完全忘了格式化。以后将尽量避免。感谢您的快速回复。我同意你的观点,这可能会产生bug,而且很乏味。我会耐心地等待Cosmos DB团队按照他们的路线图解决这个问题。
SELECT * FROM c WHERE c.name = "Health"
SELECT * FROM c WHERE c.Name = "Health"