【发布时间】:2017-08-31 17:44:54
【问题描述】:
我正在运行 dotnet core 并访问 documentdb。
当我尝试使用 linq where 子句运行查询时,它会返回,但它需要很长时间并且似乎没有在服务器上进行过滤。我能够通过使用 SqlQuerySpec 运行查询来解决此问题,现在它似乎在服务器上运行查询条件。
这是一个已知问题还是我遗漏了什么?
不起作用的那个:
var query = _client.CreateDocumentQuery<T>(documentCollection.DocumentsLink).Where(criteria);
return query.ToList();
条件属于类型
Func<T, bool> criteria
有效的方法:
var documentQuery = _client.CreateDocumentQuery<T>(UriFactory.CreateDocumentCollectionUri(_databaseName, collectionName), query).AsDocumentQuery();
List<T> results = new List<T>();
while (documentQuery.HasMoreResults)
{
results.AddRange(await documentQuery.ExecuteNextAsync<T>());
}
return results;
查询的类型
SqlQuerySpec query
这是 dotnet core 实现 documentdb sdk 与标准 .NET 包相比落后的功能吗?
【问题讨论】:
标签: performance linq .net-core azure-cosmosdb