TransactionalBatch Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un lote de operaciones en los elementos con el mismo PartitionKey en un contenedor que se realizará de forma transaccional en el servicio Azure Cosmos DB. Use CreateTransactionalBatch(PartitionKey) para crear una instancia de TransactionalBatch.
public abstract class TransactionalBatch
type TransactionalBatch = class
Public MustInherit Class TransactionalBatch
- Herencia
-
TransactionalBatch
Ejemplos
En este ejemplo se modifica de forma atómica un conjunto de documentos como un 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;
}
En este ejemplo se lee de forma atómica un conjunto de documentos como un 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());
}
}
}
Comentarios
Límites de solicitudes TransactionalBatch
Constructores
TransactionalBatch() |
Representa un lote de operaciones en los elementos con el mismo PartitionKey en un contenedor que se realizará de forma transaccional en el servicio Azure Cosmos DB. Use CreateTransactionalBatch(PartitionKey) para crear una instancia de TransactionalBatch. |
Métodos
CreateItem<T>(T, TransactionalBatchItemRequestOptions) |
Agrega una operación para crear un elemento en el lote. |
CreateItemStream(Stream, TransactionalBatchItemRequestOptions) |
Agrega una operación para crear un elemento en el lote. |
DeleteItem(String, TransactionalBatchItemRequestOptions) |
Agrega una operación para eliminar un elemento en el lote. |
ExecuteAsync(CancellationToken) |
Ejecuta el lote transaccional en el servicio Azure Cosmos como una operación asincrónica. |
ExecuteAsync(TransactionalBatchRequestOptions, CancellationToken) |
Ejecuta el lote transaccional en el servicio Azure Cosmos como una operación asincrónica. |
PatchItem(String, IReadOnlyList<PatchOperation>, TransactionalBatchPatchItemRequestOptions) |
Agrega una operación para aplicar revisiones a un elemento en el lote. |
ReadItem(String, TransactionalBatchItemRequestOptions) |
Agrega una operación para leer un elemento en el lote. |
ReplaceItem<T>(String, T, TransactionalBatchItemRequestOptions) |
Agrega una operación para reemplazar un elemento en el lote. |
ReplaceItemStream(String, Stream, TransactionalBatchItemRequestOptions) |
Agrega una operación para reemplazar un elemento en el lote. |
UpsertItem<T>(T, TransactionalBatchItemRequestOptions) |
Agrega una operación para actualizar un elemento en el lote. |
UpsertItemStream(Stream, TransactionalBatchItemRequestOptions) |
Agrega una operación para actualizar un elemento en el lote. |
Se aplica a
Azure SDK for .NET