如何解决Cosmos DB:如何使用LINQ查询检测请求费用
在Cosmos DB v3中,我使用IOrderedQueryable<T>
得到了GetItemLinqQueryable<T>
。这使我可以编写自定义查询。问题是,无论何时实现查询,我都希望跟踪请求费用。如何做到这一点?
当我执行ReadItemAsync
和ExecuteStoredProcedureAsync
之类的方法时,返回的对象具有RequestCharge
属性,但是我需要使用linq查询来检测费用。
解决方法
您可以在ToFeedIterator
上使用扩展方法IOrderedQueryable
。
using Microsoft.Azure.Cosmos.Linq;
var query = container.GetItemLinqQueryable<MyClass>()
.Where(c => true)
.ToFeedIterator();
while (query.HasMoreResults)
{
var response = await query.ReadNextAsync();
Console.WriteLine(response.RequestCharge);
foreach (var myClassInstance in response)
{
// do stuff
}
}
编辑:如果需要计数或任何聚合函数:
var query = container.GetItemLinqQueryable<MyClass>()
.Where(c => true);
Response<int> x = await query.CountAsync();
Console.WriteLine(x.RequestCharge);
int count = x; // Autoboxing
您可以在GitHub上找到可用扩展功能的完整列表。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。