次の方法で共有


Container.PatchItemAsync<T> メソッド

定義

非同期操作として Azure Cosmos サービス内の項目にパッチを適用します。

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

型パラメーター

T

パラメーター

id
String

修正プログラムを適用するアイテムの Cosmos アイテム ID。

partitionKey
PartitionKey

PartitionKey アイテムの

patchOperations
IReadOnlyList<PatchOperation>

参照される Cosmos アイテムに順次適用される操作の一覧を表します。

requestOptions
PatchItemRequestOptions

(省略可能)アイテム要求のオプション。

cancellationToken
CancellationToken

(省略可能) CancellationToken 要求の取り消しを表します。

戻り値

Task更新されたリソース レコードをItemResponse<T>ラップする を含む 。

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

注釈

項目のパーティション キー値は変更できません。 項目のパーティション キー値を変更するには、元の項目を削除し、新しい項目を挿入する必要があります。 パッチ操作はアトミックであり、順番に実行されます。 既定では、リソース本文は応答の一部として返されます。 ユーザーは、フラグを false に設定 EnableContentResponseOnWrite することで、コンテンツを要求できません。

適用対象