Compartilhar via


Container.ReplaceItemAsync<T> Método

Definição

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

public abstract System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<T>> ReplaceItemAsync<T> (T item, string id, Microsoft.Azure.Cosmos.PartitionKey? partitionKey = default, Microsoft.Azure.Cosmos.ItemRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member ReplaceItemAsync : 'T * string * Nullable<Microsoft.Azure.Cosmos.PartitionKey> * Microsoft.Azure.Cosmos.ItemRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<'T>>
Public MustOverride Function ReplaceItemAsync(Of T) (item As T, id As String, 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.

id
String

A ID do item do Cosmos do item existente.

partitionKey
Nullable<PartitionKey>

PartitionKey para o item. Se não for especificado, será populado 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

Um Task que contém um ItemResponse<T> que encapsula o registro de recurso atualizado.

Exceções

Se um dos dois item não estiver definido.

Essa exceção pode encapsular muitos tipos diferentes de erros. Para determinar o erro específico, sempre examine a propriedade StatusCode.

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 criar o documento está cheia.
413RequestEntityTooLarge - Isso significa que o item excede o tamanho máximo da entidade atual. Consulte a documentação sobre limites e cotas.
429TooManyRequests - Isso significa que você excedeu o número de unidades de solicitação por segundo.

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 item = await this.container.ReplaceItemAsync<ToDoActivity>(test, test.id, new PartitionKey(test.status));

Comentários

O valor da chave de partição do item é imutável. Para alterar o valor da chave de partição de um item, você deve excluir o item original e inserir um novo item.

Aplica-se a