Share via


Container.PatchItemAsync<T> Método

Definición

Aplica revisiones a un elemento del servicio Azure Cosmos como una operación asincrónica.

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

Identificador de elemento de Cosmos del elemento que se va a aplicar revisiones.

partitionKey
PartitionKey

PartitionKey para el elemento

patchOperations
IReadOnlyList<PatchOperation>

Representa una lista de operaciones que se aplicarán secuencialmente al elemento de Cosmos al que se hace referencia.

requestOptions
PatchItemRequestOptions

(Opcional) Las opciones de la solicitud de elemento.

cancellationToken
CancellationToken

(Opcional) CancellationToken que representa la cancelación de la solicitud.

Devoluciones

que Task contiene un ItemResponse<T> objeto que encapsula el registro de recursos actualizado.

Ejemplos

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"]
}*/

Comentarios

El valor de clave de partición del elemento es inmutable. Para cambiar el valor de clave de partición de un elemento, debe eliminar el elemento original e insertar un nuevo elemento. Las operaciones de revisión son atómicas y se ejecutan secuencialmente. De forma predeterminada, el cuerpo del recurso se devolverá como parte de la respuesta. El usuario no puede solicitar contenido estableciendo la marca EnableContentResponseOnWrite en false.

Se aplica a