【发布时间】:2018-06-06 15:15:29
【问题描述】:
我从 C# 代码将对象存储在 Azure CosmosDB 中。这些对象的属性在应用程序启动时并未完全定义,因此可能会在运行时添加或删除一些对象。这就是为什么我在模型类中有一个字典类型的属性“属性”:
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");- 根本不应该返回没有City键的文档。
标签: c# linq azure azure-cosmosdb