我刚刚开始使用DocumentDB,并希望尝试最近添加的聚合功能。但是,当我尝试使用它们时,我得到以下异常:
Query expression is invalid, expression return type System.Int32 is unsupported. Query must evaluate to IEnumerable.
我已经有了一个DocumentClient对象,名为client
。
var collectionUri = UriFactory.CreateDocumentCollectionUri(DatabaseId, CollectionId);
var options = new FeedOptions {MaxItemCount = -1, EnableCrossPartitionQuery = true};
var count = client.CreateDocumentQuery<LogEvent>(collectionUri, options)
.Where(f => f.Player == "SomePlayer")
.Count();
我正在攻击本地模拟器。该集合中有四个文档。
这是当前在本地模拟器中无法使用的东西吗?或者我做错了什么?
答案 0 :(得分:1)
根据您的代码,我针对我的Azure DocumentDB(而不是本地模拟器)测试了它,然后我可能遇到与您提供的相同的错误:
正如Aravind Ramachandran提到的那个版本,然后我检查了我安装的版本,发现它是Microsoft.Azure.DocumentDB 1.11.4。将版本更新到1.12.1或更高版本后,我可以检索预期的结果。
以下是Azure DocumentDB for .NET的release notes:
1.12.1中的更改
为聚合查询添加了LINQ支持(COUNT,MIN,MAX,SUM和AVG)。