Partilhar via


Container.UpsertItemAsync<T> Método

Definição

Aumenta um item como uma operação assíncrona no serviço do Azure Cosmos.

public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<T>> UpsertItemAsync<T> (T item, Microsoft.Azure.Cosmos.PartitionKey? partitionKey = default, Microsoft.Azure.Cosmos.ItemRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertItemAsync : 'T * Nullable<Microsoft.Azure.Cosmos.PartitionKey> * Microsoft.Azure.Cosmos.ItemRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<'T>>
Public MustOverride Function UpsertItemAsync(Of T) (item As T, Optional partitionKey As Nullable(Of PartitionKey) = Nothing, Optional requestOptions As ItemRequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ItemResponse(Of T))

Parâmetros de tipo

T

Parâmetros

item
T

Um objeto serializável JSON que deve conter uma propriedade id. CosmosSerializer para implementar um serializador personalizado

partitionKey
Nullable<PartitionKey>

PartitionKey para o item. Se não for especificado, será preenchido extraindo de {T}

requestOptions
ItemRequestOptions

(Opcional) As opções para a solicitação de item.

cancellationToken
CancellationToken

(Opcional) CancellationToken que representa o cancelamento da solicitação.

Retornos

O ItemResponse<T> que foi upserted contido em um Task objeto que representa a resposta de serviço para a operação assíncrona.

Exceções

Representa uma consolidação de falhas que ocorreram durante o processamento assíncrono. Procure dentro de InnerExceptions para encontrar as exceções reais

Essa exceção pode encapsular muitos tipos diferentes de erros. Para determinar o erro específico, sempre examine a propriedade StatusCode. Alguns códigos comuns que você pode obter ao criar um Documento são:

StatusCodeMotivo da exceção
400BadRequest - Isso significa que algo estava errado com o documento fornecido.
403Proibido – isso provavelmente significa que a coleção na qual você estava tentando inserir o documento está cheia.
413RequestEntityTooLarge - Isso significa que o item excede o tamanho máximo da entidade atual. Consulte a documentação para obter limites e cotas.
429TooManyRequests - Isso significa que você excedeu o número de unidades de solicitação por segundo. Consulte o valor DocumentClientException.RetryAfter para ver quanto tempo você deve aguardar antes de repetir essa operação.

Exemplos

public class ToDoActivity{
    public string id {get; set;}
    public string status {get; set;}
}

ToDoActivity test = new ToDoActivity()
{
   id = Guid.NewGuid().ToString(),
   status = "InProgress"
};

ItemResponse<ToDoActivity> item = await this.container.UpsertItemAsync<ToDoActivity>(test, new PartitionKey(test.status));

Aplica-se a