你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Container.ReplaceItemAsync<T> 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将 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 。
返回
Task<ItemResponse<T>>
ItemResponse<T>包含Task包装更新的资源记录的 。
例外
如果未设置任何一个 item
。
此异常可以封装许多不同类型的错误。 若要确定特定错误,请始终查看 StatusCode 属性。
StatusCode | 异常原因 |
---|---|
400 | BadRequest - 这意味着所提供的文档出错。 |
403 | 禁止 - 这可能意味着你尝试在其中创建文档的集合已满。 |
413 | RequestEntityTooLarge - 这意味着该项超出了当前的最大实体大小。 有关限制和配额,请参阅文档。 |
429 | TooManyRequests - 这意味着已超出每秒请求单位数。 |
示例
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));
注解
项的分区键值是不可变的。 若要更改项的分区键值,必须删除原始项并插入新项。