Freigeben über


TransactionalBatch Klasse

Definition

Stellt einen Batch von Vorgängen für Elemente mit demselben PartitionKey in einem Container dar, der in transaktionaler Weise im Azure Cosmos DB-Dienst ausgeführt wird. Verwenden SieCreateTransactionalBatch(PartitionKey), um eine instance von TransactionalBatch zu erstellen.

public abstract class TransactionalBatch
type TransactionalBatch = class
Public MustInherit Class TransactionalBatch
Vererbung
TransactionalBatch

Beispiele

In diesem Beispiel wird eine Gruppe von Dokumenten atomar als Batch geändert.

public class ToDoActivity
{
    public string type { get; set; }
    public string id { get; set; }
    public string status { get; set; }
}

string activityType = "personal";
ToDoActivity test1 = new ToDoActivity()
{
    type = activityType,
    id = "learning",
    status = "ToBeDone"
};

ToDoActivity test2 = new ToDoActivity()
{
    type = activityType,
    id = "shopping",
    status = "Done"
};

ToDoActivity test3 = new ToDoActivity()
{
    type = activityType,
    id = "swimming",
    status = "ToBeDone"
};

ToDoActivity test4 = new ToDoActivity()
{
    type = activityType,
    id = "running",
    status = "ToBeDone"
};

List<PatchOperation> patchOperations = new List<PatchOperation>();
patchOperations.Add(PatchOperation.Replace("/status", "InProgress");
patchOperations.Add(PatchOperation.Add("/progress", 50);

using (TransactionalBatchResponse batchResponse = await container.CreateTransactionalBatch(new Cosmos.PartitionKey(activityType))
    .CreateItem<ToDoActivity>(test1)
    .ReplaceItem<ToDoActivity>(test2.id, test2)
    .UpsertItem<ToDoActivity>(test3)
    .PatchItem(test4.id, patchOperations)
    .DeleteItem("reading")
    .CreateItemStream(streamPayload1)
    .ReplaceItemStream("eating", streamPayload2)
    .UpsertItemStream(streamPayload3)
    .ExecuteAsync())
{
   if (!batchResponse.IsSuccessStatusCode)
   {
       // Handle and log exception
       return;
   }

   // Look up interested results - eg. via typed access on operation results
   TransactionalBatchOperationResult<ToDoActivity> replaceResult = batchResponse.GetOperationResultAtIndex<ToDoActivity>(0);
   ToDoActivity readActivity = replaceResult.Resource;
}

In diesem Beispiel wird eine Gruppe von Dokumenten als Batch atomar gelesen.

string activityType = "personal";
using (TransactionalBatchResponse batchResponse = await container.CreateTransactionalBatch(new Cosmos.PartitionKey(activityType))
   .ReadItem("playing")
   .ReadItem("walking")
   .ReadItem("jogging")
   .ReadItem("running")
   .ExecuteAsync())
{
    // Look up interested results - eg. via direct access to operation result stream
    List<string> resultItems = new List<string>();
    foreach (TransactionalBatchOperationResult operationResult in batchResponse)
    {
        using (StreamReader streamReader = new StreamReader(operationResult.ResourceStream))
        {
            resultItems.Add(await streamReader.ReadToEndAsync());
        }
    }
}

Hinweise

Grenzwerte für TransactionalBatch-Anforderungen

Konstruktoren

TransactionalBatch()

Stellt einen Batch von Vorgängen für Elemente mit demselben PartitionKey in einem Container dar, der in transaktionaler Weise im Azure Cosmos DB-Dienst ausgeführt wird. Verwenden SieCreateTransactionalBatch(PartitionKey), um eine instance von TransactionalBatch zu erstellen.

Methoden

CreateItem<T>(T, TransactionalBatchItemRequestOptions)

Fügt dem Batch einen Vorgang zum Erstellen eines Elements hinzu.

CreateItemStream(Stream, TransactionalBatchItemRequestOptions)

Fügt dem Batch einen Vorgang zum Erstellen eines Elements hinzu.

DeleteItem(String, TransactionalBatchItemRequestOptions)

Fügt einen Vorgang zum Löschen eines Elements in den Batch hinzu.

ExecuteAsync(CancellationToken)

Führt den Transaktionsbatch im Azure Cosmos-Dienst als asynchronen Vorgang aus.

ExecuteAsync(TransactionalBatchRequestOptions, CancellationToken)

Führt den Transaktionsbatch im Azure Cosmos-Dienst als asynchronen Vorgang aus.

PatchItem(String, IReadOnlyList<PatchOperation>, TransactionalBatchPatchItemRequestOptions)

Fügt einen Vorgang hinzu, um ein Element in den Batch zu patchen.

ReadItem(String, TransactionalBatchItemRequestOptions)

Fügt einen Vorgang zum Lesen eines Elements in den Batch hinzu.

ReplaceItem<T>(String, T, TransactionalBatchItemRequestOptions)

Fügt einen Vorgang hinzu, um ein Element in den Batch zu ersetzen.

ReplaceItemStream(String, Stream, TransactionalBatchItemRequestOptions)

Fügt einen Vorgang hinzu, um ein Element in den Batch zu ersetzen.

UpsertItem<T>(T, TransactionalBatchItemRequestOptions)

Fügt einen Vorgang zum Upsertieren eines Elements in den Batch hinzu.

UpsertItemStream(Stream, TransactionalBatchItemRequestOptions)

Fügt einen Vorgang zum Upsertieren eines Elements in den Batch hinzu.

Gilt für: