我正在为.Net中的宇宙数据库创建一个存储库,并且要干,并且避免用[JsonProperty(PropertyName = "thePropertyName")]
装饰每个类属性,我已用[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
装饰了我的类。宇宙数据库不尊重Json.Net CamelCaseNamingStrategy在查询
CreateDocumentAsync
(例如)使用属性的驼峰大小写名称正确地序列化JSON中的我的Cosmos数据库文档。到现在为止还挺好。
但是,我的问题是,当我通过LINQ查询Cosmos DB时,它生成的用于查询COSMOS DB的SQL不考虑装饰该类的[JsonObject(NamingStrategyType = typeof(CamelCaseNamingStrategy))]
属性,因此不会返回任何文档。这是因为Cosmos DB查询对于字段/属性名称是区分大小写的。例如,下面的产生不同的结果(注意名称的情况差):
SELECT * FROM c WHERE c.name = "Health"
与
SELECT * FROM c WHERE c.Name = "Health"
我已经通过检查CreateDocumentQuery
生成的查询SQL证实了这一点,并一直在寻求这些选项可能允许我在SqlQuerySpec
中指示财产名称的套管,但没有成功。
所以,我的问题是:有谁知道如何在Cosmos Db中使用类定义驼峰套管策略的LINQ查询,而不必通过[JsonProperty(PropertyName = "thePropertyName")]
手动设置每个属性。
非常感谢大家的帮助。
Brian,感谢您的格式化。我的第一个问题,完全忘了格式。将尽量避免在未来。 – DJB