Share via


Container.PatchItemAsync<T> Método

Definição

Patches de 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>> PatchItemAsync<T> (string id, Microsoft.Azure.Cosmos.PartitionKey partitionKey, System.Collections.Generic.IReadOnlyList<Microsoft.Azure.Cosmos.PatchOperation> patchOperations, Microsoft.Azure.Cosmos.PatchItemRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member PatchItemAsync : string * Microsoft.Azure.Cosmos.PartitionKey * System.Collections.Generic.IReadOnlyList<Microsoft.Azure.Cosmos.PatchOperation> * Microsoft.Azure.Cosmos.PatchItemRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<Microsoft.Azure.Cosmos.ItemResponse<'T>>
Public MustOverride Function PatchItemAsync(Of T) (id As String, partitionKey As PartitionKey, patchOperations As IReadOnlyList(Of PatchOperation), Optional requestOptions As PatchItemRequestOptions = Nothing, Optional cancellationToken As CancellationToken = Nothing) As Task(Of ItemResponse(Of T))

Parâmetros de tipo

T

Parâmetros

id
String

A ID do item do Cosmos do item a ser corrigido.

partitionKey
PartitionKey

PartitionKey para o item

patchOperations
IReadOnlyList<PatchOperation>

Representa uma lista de operações a serem aplicadas sequencialmente ao item cosmos referenciado.

requestOptions
PatchItemRequestOptions

(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.

Exemplos

public class ToDoActivity{
    public string id {get; set;}
    public string status {get; set;}
    public string description {get; set;}
    public int frequency {get; set;}
}

ToDoActivity toDoActivity = await this.container.ReadItemAsync<ToDoActivity>("id", new PartitionKey("partitionKey"));
/* toDoActivity = {
    "id" : "someId",
    "status" : "someStatusPK",
    "description" : "someDescription",
    "frequency" : 7
}*/

List<PatchOperation> patchOperations = new List<PatchOperation>()
{
    PatchOperation.Add("/daysOfWeek", new string[]{"Monday", "Thursday"}),
    PatchOperation.Replace("/frequency", 2),
    PatchOperation.Remove("/description")
};

ItemResponse<dynamic> item = await this.container.PatchItemAsync<dynamic>(toDoActivity.id, new PartitionKey(toDoActivity.status), patchOperations);
/* item.Resource = {
    "id" : "someId",
    "status" : "someStatusPK",
    "description" : null,
    "frequency" : 2,
    "daysOfWeek" : ["Monday", "Thursday"]
}*/

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. As operações de patch são atômicas e são executadas sequencialmente. Por padrão, o corpo do recurso será retornado como parte da resposta. O usuário não pode solicitar conteúdo definindo EnableContentResponseOnWrite sinalizador como false.

Aplica-se a