我正在使用C#代码将对象存储在Azure CosmosDB中。这些对象的属性在应用程序启动时未完全定义,因此可能会在运行时添加或删除一些属性。所以在模型类中有一个类型为Dictionary的属性"Attributes":
public Dictionary<string, string> Attributes { get; }
但是我该如何针对此属性编写查询呢?例如,我想编写以下查询:
但是我该如何针对此属性的内容编写查询呢?例如,我想编写以下查询:
documentQueryable
.Where(doc => doc.Attributes.ContainsKey("City") && doc.Attributes["City"] == "NY");
然而,这不被支持:
Microsoft.Azure.Documents.Linq.DocumentQueryException: Method 'ContainsKey' is not supported., documentdb-dotnet-sdk/1.22.0 Host/32-bit MicrosoftWindowsNT/10.0.14393.0
documentQueryable.Where(doc => doc.Attributes["City"] == "NY");
- 没有“城市”键的文档不应该被返回。 - StuartLC