首页 > 解决方案 > 如何使用 .NET SDK 获取当前的 Cosmos RU?

问题描述

当您替换当前的 RU(例如作为自动缩放的一部分)时,最好检查一下当前的报价是什么,以避免不必要的缩放调用。

您可以像这样获得当前的报价。

var collectionOffer = _documentClient.CreateOfferQuery().Where(x => x.ResourceLink == collection.Resource.SelfLink).AsEnumerable().SingleOrDefault();

令人讨厌的是,在对象的内容中,您可以在thenOffer中看到当前的 RU 。ContentofferThroughput

你如何在不做一些 hacky 的事情(比如将其转换为 JSON 并返回动态)的情况下获得 int 以便您可以访问该数字?

标签: .netazure-cosmosdbazure-cosmosdb-sqlapi

解决方案


因为Offer对象继承自Resource,所以它有一个方法GetPropertyValue<T>。同样更有帮助的是,已经有一个对象与名为的对象的内容基本匹配OfferContentV2

所以你可以做

var offerContent = collectionOffer?.GetPropertyValue<OfferContentV2>("content");

那么当前值为offerContent.OfferThroughput


推荐阅读