Share via


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

Container.ReplaceItemAsync<T> 方法

定义

将 Azure Cosmos 服务中的项替换为异步操作。

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

类型参数

T

参数

item
T

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

id
String

现有项的 Cosmos 项 ID。

partitionKey
Nullable<PartitionKey>

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

requestOptions
ItemRequestOptions

(可选) 项请求的选项。

cancellationToken
CancellationToken

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

返回

ItemResponse<T>包含Task包装更新的资源记录的 。

例外

如果未设置任何一个 item

此异常可以封装许多不同类型的错误。 若要确定特定错误,请始终查看 StatusCode 属性。

StatusCode异常原因
400BadRequest - 这意味着所提供的文档出错。
403禁止 - 这可能意味着你尝试在其中创建文档的集合已满。
413RequestEntityTooLarge - 这意味着该项超出了当前的最大实体大小。 有关限制和配额,请参阅文档。
429TooManyRequests - 这意味着已超出每秒请求单位数。

示例

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

注解

项的分区键值是不可变的。 若要更改项的分区键值,必须删除原始项并插入新项。

适用于