Freigeben über


Container.PatchItemAsync<T> Methode

Definition

Patcht ein Element im Azure Cosmos-Dienst als asynchronen Vorgang.

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

Typparameter

T

Parameter

id
String

Die Cosmos-Element-ID des zu patchenden Elements.

partitionKey
PartitionKey

PartitionKey für das Element

patchOperations
IReadOnlyList<PatchOperation>

Stellt eine Liste von Vorgängen dar, die sequenziell auf das verwiesene Cosmos-Element angewendet werden sollen.

requestOptions
PatchItemRequestOptions

(Optional) Die Optionen für die Elementanforderung.

cancellationToken
CancellationToken

(Optional) CancellationToken stellt den Anforderungsabbruch dar.

Gibt zurück

Ein Task , der einen ItemResponse<T> enthält, der den aktualisierten Ressourcendatensatz umschließt.

Beispiele

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

Hinweise

Der Partitionsschlüsselwert des Elements ist unveränderlich. Um den Partitionsschlüsselwert eines Elements zu ändern, müssen Sie das ursprüngliche Element löschen und ein neues Element einfügen. Die Patchvorgänge sind atomar und werden sequenziell ausgeführt. Standardmäßig wird der Ressourcentext als Teil der Antwort zurückgegeben. Der Benutzer kann keinen Inhalt anfordern, indem er das Flag auf false festlegt EnableContentResponseOnWrite .

Gilt für: