TransactionalBatch Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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:
Azure SDK for .NET