Compartir a través de


CosmosContainer.UpsertItemAsync<T> Método

Definición

Upserts un elemento como una operación asincrónica en el servicio Azure Cosmos.

public abstract System.Threading.Tasks.Task<Azure.Cosmos.ItemResponse<T>> UpsertItemAsync<T> (T item, Azure.Cosmos.PartitionKey? partitionKey = default, Azure.Cosmos.ItemRequestOptions requestOptions = default, System.Threading.CancellationToken cancellationToken = default);
abstract member UpsertItemAsync : 'T * Nullable<Azure.Cosmos.PartitionKey> * Azure.Cosmos.ItemRequestOptions * System.Threading.CancellationToken -> System.Threading.Tasks.Task<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

Objeto serializable JSON que debe contener una propiedad id. CosmosSerializer para implementar un serializador personalizado

partitionKey
Nullable<PartitionKey>

Clave de partición para el elemento. Si no se especifica, se rellenará extrayendo de {T}

requestOptions
ItemRequestOptions

(Opcional) Opciones de la solicitud de elemento ItemRequestOptions

cancellationToken
CancellationToken

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

Devoluciones

objeto Response<T> que se ha actualizado dentro de un Task objeto que representa la respuesta del servicio para la operación asincrónica.

Excepciones

Representa una consolidación de errores que se produjeron durante el procesamiento asincrónico. Busque en InnerExceptions para buscar las excepciones reales.

Esta excepción puede encapsular muchos tipos diferentes de errores. Para determinar el error específico, examine siempre la propiedad StatusCode. Algunos códigos comunes que puede obtener al crear un documento son:

StatusCodeMotivo de la excepción
400BadRequest: esto significa que algo estaba mal con el documento proporcionado.
403Prohibido: esto probablemente significa que la colección en la que estaba intentando actualizar el documento está lleno.
413RequestEntityTooLarge: esto significa que el elemento supera el tamaño máximo de entidad actual. Consulte la documentación para conocer los límites y las cuotas.
429TooManyRequests: esto significa que ha superado el número de unidades de solicitud por segundo. Consulte el valor DocumentClientException.RetryAfter para ver cuánto tiempo debe esperar antes de volver a intentar esta operación.

Ejemplos

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));

Se aplica a