你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Container.UpsertItemAsync<T> 方法

定义

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

类型参数

T

参数

item
T

必须包含 id 属性的 JSON 可序列化对象。 CosmosSerializer 实现自定义序列化程序

partitionKey
Nullable<PartitionKey>

PartitionKey 项的 。 如果未指定,将通过从 {T} 提取来填充

requestOptions
ItemRequestOptions

(可选) 项请求的选项。

cancellationToken
CancellationToken

(表示请求取消的可选) CancellationToken

返回

ItemResponse<T>在 表示异步操作的服务响应的 对象中包含的Task已更新插入的 。

例外

表示异步处理期间发生的故障的合并。 在 InnerExceptions 中查找实际异常 ()

此异常可以封装许多不同类型的错误。 若要确定特定错误,请始终查看 StatusCode 属性。 创建文档时可能会获取的一些常见代码包括:

StatusCode异常原因
400BadRequest - 这意味着提供的文档出现问题。
403禁止 - 这可能意味着你尝试将文档更新插入到的集合已满。
413RequestEntityTooLarge - 这意味着该项超出了当前的最大实体大小。 有关限制和配额,请参阅文档。
429TooManyRequests - 这意味着已超出每秒请求单位数。 请参阅 DocumentClientException.RetryAfter 值,了解在重试此操作之前应等待多长时间。

示例

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

适用于