TransactionalBatch Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa um lote de operações em relação a itens com o mesmo PartitionKey em um contêiner que será executado de maneira transacional no serviço do Azure Cosmos DB. Use CreateTransactionalBatch(PartitionKey) para criar uma instância de TransactionalBatch.
public abstract class TransactionalBatch
type TransactionalBatch = class
Public MustInherit Class TransactionalBatch
- Herança
-
TransactionalBatch
Exemplos
Este exemplo modifica atomicamente um conjunto de documentos como um lote.
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;
}
Este exemplo lê atomicamente um conjunto de documentos como um lote.
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());
}
}
}
Comentários
Limites em solicitações TransactionalBatch
Construtores
TransactionalBatch() |
Representa um lote de operações em relação a itens com o mesmo PartitionKey em um contêiner que será executado de maneira transacional no serviço do Azure Cosmos DB. Use CreateTransactionalBatch(PartitionKey) para criar uma instância de TransactionalBatch. |
Métodos
CreateItem<T>(T, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para criar um item no lote. |
CreateItemStream(Stream, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para criar um item no lote. |
DeleteItem(String, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para excluir um item no lote. |
ExecuteAsync(CancellationToken) |
Executa o lote transacional no serviço do Azure Cosmos como uma operação assíncrona. |
ExecuteAsync(TransactionalBatchRequestOptions, CancellationToken) |
Executa o lote transacional no serviço do Azure Cosmos como uma operação assíncrona. |
PatchItem(String, IReadOnlyList<PatchOperation>, TransactionalBatchPatchItemRequestOptions) |
Adiciona uma operação para aplicar patch a um item no lote. |
ReadItem(String, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para ler um item no lote. |
ReplaceItem<T>(String, T, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para substituir um item no lote. |
ReplaceItemStream(String, Stream, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para substituir um item no lote. |
UpsertItem<T>(T, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para fazer upsert de um item no lote. |
UpsertItemStream(Stream, TransactionalBatchItemRequestOptions) |
Adiciona uma operação para fazer upsert de um item no lote. |
Aplica-se a
Azure SDK for .NET