Зачем мне когда-либо явно хотеть включать PartitionKey при добавлении элемента в CosmosClient? - PullRequest
0 голосов
/ 03 октября 2019

UpsertItemAsync имеет необязательный параметр, в котором вы можете указать PartitionKey.

Это для «нового» CosmosClient, а не для «старого» DocumentClient.

enter image description here https://docs.microsoft.com/en-us/dotnet/api/microsoft.azure.cosmos.container.upsertitemasync?view=azure-dotnet

Как сказано в документации - это необязательно, потому что если вы не предоставите один, он будет автоматически извлечен из предмета. Разве это не идеально?

Существует ли какая-либо мыслимая ситуация при любых обстоятельствах, когда это не то, что вы хотите?

1 Ответ

1 голос
/ 03 октября 2019

Поскольку извлечение PartitionKey означает, что SDK необходимо проанализировать элемент и выяснить, какой атрибут является правильным и все, что занимает вычислительное время. Ссылка https://github.com/Azure/azure-cosmos-dotnet-v3/blob/master/Microsoft.Azure.Cosmos/src/Resource/Container/ContainerCore.Items.cs#L506

Если вы заранее знаете, что является значением PartitionKey, это улучшит общую производительность операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...