UpsertItemAsync имеет необязательный параметр, в котором вы можете указать PartitionKey.
UpsertItemAsync
PartitionKey
Это для «нового» CosmosClient, а не для «старого» DocumentClient.
https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmos.container.upsertitemasync?view=azure-dotnet
Как сказано в документации - это необязательно, потому что если вы не предоставите один, он будет автоматически извлечен из предмета. Разве это не идеально?
Существует ли какая-либо мыслимая ситуация при любых обстоятельствах, когда это не то, что вы хотите?
Поскольку извлечение PartitionKey означает, что SDK необходимо проанализировать элемент и выяснить, какой атрибут является правильным и все, что занимает вычислительное время. Ссылка https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos/src/Resource/Container/ContainerCore.Items.cs#L506
Если вы заранее знаете, что является значением PartitionKey, это улучшит общую производительность операции.