从 DocumentDbClient 迁移时,CosmosClient 替代 CreateDocumentAsync、CreateDocumentQuery 和 UpsertDocumentAsync

问题描述 投票:0回答:2

我正在尝试将我的项目从

DocumentDbClient
升级到
CosmosClient
。在现有代码中,我有类似以下的客户端方法:
CreateDocumentAsync(), CreateDocumentQuery(), and UpsertDocumentAsync()
可用,但是当将客户端更新为
CosmosClient
时,我没有任何可用的方法。进行此迁移的最简单方法是什么?在新的
CosmosClient
中我对这些方法有哪些替代方案。这是使用
DocumentDbClient
的现有示例方法,我想迁移并使用
CosmosClient
来代替:

 private async Task<ResourceResponse<Document>> UpsertStoreItemToDocumentDb(
 Uri collectionUri,
 TSt storeType,
 RequestContext requestContext)
{
 var client = await GetClient(requestContext);
 return await client.UpsertDocumentAsync(collectionUri, storeType)
     .TrackDiagnosticData(
         sourceName: () => ApiProviderSettings.Name,
         actionName: () => $"Upsert-{SourceMapping.ResourceDescription.Name}");
}

我确实看到使用

client.GetContainer()
然后做
createItemAsync
UpsertItemAsync
但在走这条路之前只想知道是否有人已经这样做过,什么是简单的方法来做到这一点。谢谢!

azure-cosmosdb azure-cosmosdb-sqlapi
2个回答
0
投票

正如我在问题本身中提到的,GetContainer() 可用,然后我可以使用 CreateItemAsync()、UpsertItemAsync() 等。事实证明,根据迁移指南,这也是正确的路线,这就是要走的路。谢谢!


0
投票

我在将v2升级到v3时遇到了类似的问题,然后我发现了这篇文章https://elcamino.cloud/articles/2019-11-05-cosmos-net-sdk-v3-upgrade-guide-and -tips.html

希望这也能帮助你。

© www.soinside.com 2019 - 2024. All rights reserved.